在swift

时间:2015-05-12 08:29:01

标签: swift

嗨,我对快速语言不熟悉,首先我不知道这是否是我正在创作的一个可以允许的主题,但我需要了解这一点并且无法找到任何本网站上的信息

在swift中,我意识到有几种方法可以声明变量及其类型。但我不知道差异,也不知道在哪里使用......

纠正我如果我错了.. 开始时:

var anything = "When I do it like this my anything variable becomes type of string" 

但如果我输入

var anything = 12 //it's type Int 

依此类推。除此之外,我还可以将这些变量声明为

var anything:Int

var anything:String

到目前为止我对此很好但是将全局变量声明为

的区别是什么
var anything:String 

var anything:String = String()

我如何决定使用哪个和哪里?谢谢

3 个答案:

答案 0 :(得分:2)

可以推断出Swift类型(根据上下文确定)。在

.table {
    min-width: 399px;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    display: table;
}
.table-cell-left {
    min-width: 0px;
    max-width: 9999px;
    width: 49%;
    display: table-cell;
    background-color:#933333;
    color: #ffffff;
    text-align: center;
    vertical-align: middle;
    padding: 0 0 0 0;
}
.table-cell-right {
    min-width: 0px;
    max-width: 9999px;
    width: 49%;
    display: table-cell;
    background-color:#339933;
    color: #ffffff;
    text-align: center;
    vertical-align: middle;
}
.table-cell-middle {
    min-width: 399px;
    max-width: 999px;
    width: 2%;
    display: table-cell;
    text-align: center;
    vertical-align: middle;
    background-color:#333393;
    color: #ffffff;
}

<div class="table">
    <div class="table-cell-left">
        Left
    </div>
    <div class="table-cell-middle">
        Middle
    </div>
    <div class="table-cell-right">
        Right
    </div>
</div>

Intent myIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(download_link)); startActivity(myIntent); 是多余的,因为它可以从上下文推断出来(var anything: Int = 12 是整数文字的默认值)。但有时您需要更具体的Int。然后,您可以显式声明类型或使用初始化程序来推断类型类型:

Int

Int8

就个人而言,我随时都使用了类型推断,并且还没有遇到任何问题。

答案 1 :(得分:2)

我会倒退。有什么区别 var anything:Stringvar anything:String = String()

第一个声明一个名为anything的{​​{1}}类型的变量,第二个通过调用String的构造函数来初始化。在第一种情况下,您将不得不告诉Swift的编译器对此变量的期望 - 它是否具有值或者它将为nil。因此,如果您不知道这是最好的做法是将其声明为可选

String

关于您初始化的类型如var anything:String?,Swift按上下文确定类型,在这种情况下它是var anything = 12

答案 2 :(得分:1)

你的问题非常基础,但我理解学习新语言的麻烦,你需要帮助。这是标准的学习曲线。

Swift使用一种称为类型推断的技术。它可以从初始值确定变量的类型。

var v = 8

自动创建一个Int。

var v:Int = 8

做同样的事情

您始终可以使用推断类型。尝试使代码可读,如果类型推断提高了可读性,则使用它。 如果在编写代码2周后需要更多上下文来理解代码,请使用显式声明的类型。

当您声明没有初始值的变量时,您始终必须明确声明该类型。在这种情况下,编译器没有任何机会猜测类型。