嗨,我对快速语言不熟悉,首先我不知道这是否是我正在创作的一个可以允许的主题,但我需要了解这一点并且无法找到任何本网站上的信息
在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()
我如何决定使用哪个和哪里?谢谢
答案 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:String
和var 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周后需要更多上下文来理解代码,请使用显式声明的类型。
当您声明没有初始值的变量时,您始终必须明确声明该类型。在这种情况下,编译器没有任何机会猜测类型。