Swift 4 Introduction系列1.2 — Swift变量和常量

与其他编程语言类似,Swift也使用常量和变量。 常量是一个名称/标签,用于引用不会随时间变化的所选数据。 常量只能声明和分配一次。 不能在同一程序中重新声明或重新分配它。 但是我们可以多次引用常量。 变量是一个名称/标签,用于引用可能随时间变化的所选数据。 只要重新分配的数据与声明的数据类型相同,我们就可以将其他数据重新分配给该变量。 变量只能在程序中声明一次。 不能在同一程序中重新声明。

Swift的3种基本数据类型是: 字符串表示文本,整数表示整数, 双精度表示浮点数。 Swift鼓励我们使用上述基本数据类型来实现更好的互操作性。

另外,对于无符号整数,我们有UInt ;对于较小的浮点数,我们有Float 。 仅在必要时使用UInt和Float。

除了String之外,我们还具有称为Character的数据类型。 这是一个包含单个字符的数据类型。

最后,我们为布尔值存储了布尔值,布尔值仅存储True或False。

我们使用以下语法声明了常量:

让 =

常量的基本规则:

  • 必须在使用前声明一个常量。
  • 常量只能声明为ONCE 。 声明常量后,就无法在同一程序中再次声明具有相同名称的常量。
  • 常量只能分配一次 。 一旦分配了常数,就无法将其与其他数据一起重新分配。
  • 常量的命名必须遵循命名规则。

在Swift中,建议我们尽可能多地使用常量。 这是为了使代码更安全。

例:

 让someString =“这是一个测试” let someNumber = 18273 

在上面的示例中,当我们使用值声明常量时,我​​们不需要定义数据类型。 系统将从我们提供的值中推断出数据类型。

通过使用逗号分隔变量,我们可以在单个语句中声明具有多种数据类型的多个变量。 但是,常量和变量不能在同一语句中使用。

例:

 设fixed1 = 2837,fixed2 = 7238,fixed3 = 8320,fixed1 
固定2
固定3

例:

 令c1 = 10,c2 = true,c3 = 1.2,c4 =“常量字符串” c1 
c2
c3
c4

我们使用以下语法声明变量:

var =

变量的基本规则:

  • 必须在使用前声明一个变量。
  • 只能将变量声明为ONCE 。 声明变量后,将无法在同一程序中再次声明具有相同名称的变量。
  • 但是,我们可以多次将相同类型的其他数据重新分配给同一变量。
  • 变量的命名必须遵循命名规则。

例:

  var someVariableString =“默认字符串” var someVariableNumber = 387482someVariableString =“默认字符串已更改” someVariableNumber = 263545674 

与常量相似,当我们声明带有初始化值的变量时,我们也不需要声明数据类型,因为系统将从初始化值中推断出数据类型。

我们还可以使用逗号声明具有多种数据类型的多重变量。 但是,常量和变量不能在同一语句中使用。

例:

  var x = 12,y = 23,z = 93x 
ÿ
zx = 24
y = 54
z = 33

例:

  //:我们还可以在单​​个语句中声明多个变量,使用逗号分隔变量。 请注意,常量和变量不能在同一语句中使用。 
var v1 = 1024,v2 = 1.4,v3 =否,v4 =“可变字符串” v1
v2
v3
v4

这是命名常量和变量的一些基本规则

  • 常量或变量名必须在一个单词块中,且之间不能有空格 。 我们可以使用下划线(_)将两个单词连接成一个常数或变量名。
  • 它不能以数字开头。 可以从第二个字符开始添加数字。
  • 它不能包含特殊字符或数学符号,但_和$除外。 但是,我们不能将$用作常量或变量的第一个字符。
  • 我们可以使用下划线(_)作为常量或变量的第一个字符。 但是,不鼓励这样做。
  • 我们不能使用Swift保留关键字作为常量或变量名。 尽管可以解决问题,但除非没有其他选择,否则请不要这样做。
  • 我们可以使用其他unicode字符作为名称,只要该unicode字符未分类为箭头,画线字符或框画字符。 名称只能使用某些符号。

例:

以下示例是可接受的常量/变量名称:

 让sample1 = 823,SAMPLE2 = 76,sample $ = 21let s12constant = 34,S11 = 65let more_example =“ Test”,_ name =“不应该使用此” letᗘ= 12,្= 23,ᴔ= 3,①=“ this“ letΩ= 88,Π= 3.1415 

附加示例:

  let🤔= 98let🤓=“可以接受表情符号” letゆ=“日文字符” let汉语=“中文” let🇨🇭=“瑞士国旗” 

第二个截图

其他示例:

  //:Swift还支持unicode和多种语言 
让😀=“快乐”
var seeYouSoon =“À_bientôt”
让どうぞ=“ Dozo”
let time =“时间”
var你好世界=“ Hello World”
令π= 3.14159
让五= 5
让九=“九”

注意:

  • 并非Unicode内部的所有内容都可以用作常量/变量名称。
  • 诸如omega之类的符号实际上是拉丁字符,因此可以接受作为名称。
  • 表情符号和标志是可接受的名称符号。
  • 可以接受所有其他语言作为名称,如上所示。
  • 尽管示例中的某些名称可以接受为常量/变量名称。 但是,它可能不符合可接受的约定。

以下是我们建议使用的基本约定。 如果我们不遵循建议的约定,它不会产生错误,但是当我们与他人共享代码时,它将导致混乱和沟通不畅。

  • 尽管我们可以使用下划线作为常量名或变量名的第一个字符,但是请不要这样做,因为它有特殊的用途。
  • 请不要使用大写字母作为常量和变量的第一个字符。 保留描述数据类型的信息,例如Int和Double。
  • 将多个单词连接在一起时,请使用第二个单词的大写字母。 如exampleOfVariableName。

常量和变量命名的建议约定如下:

  • 以小写字母开头
  • 大写字母用于后续字词

例:

 让sampleWord =“ Test”让sampleNumber = 76let thisIsATestConstantName = 54 

当我们声明并同时分配常量或变量时,我们不需要指定数据类型。 系统将检查数据并为我们确定数据类型。 此过程称为数据类型推断

如何知道常量或变量属于哪种数据类型? 我们可以在Xcode中这样做,方法是在按住Option键的同时将光标悬停在变量上。 问号图标将悬停在常量或变量上。 然后,我们需要单击问号。 请参见下面的屏幕截图。

Swift只能推断以下数据类型,它们是StringIntDoubleBool 。 如果需要使用任何其他数据类型,则必须包括数据类型注释。

对于表达式或计算,系统将基于表达式的评估来推断最合适的数据类型。 如果我们将多个字符串加在一起,系统将推断常量为字符串,如下所示:

范例

 让someConstant1 =“你好!”  +“” +“你好吗?” 

对于整数计算,系统会将常数推断为Integer。

范例

 让someConstant2 = 3 + 10 

同样,浮点计算将推断为Double。

范例

 让someConstant3 = 3.1415 + 2.7815 

但是,如果我们要混合数据,系统将把常数推断为最合适的数据类型。

例:

 让someConstant4 = 3 + 0.1415 

在上面的示例中,表达式是具有整数和浮点数的计算。 在这种情况下,系统会将常数推断为浮点数据类型。

在某些情况下,我们需要声明一个常量或变量,但还没有数据。 然后,我们需要使用数据类型注释来声明常量或变量。

对于Swift无法推断的任何数据类型,例如UIntFloat,我们还需要数据类型注释。

要声明没有数据的常量,请使用以下语法:

让:

我们也可以声明变量不包含数据,如下面的语法所示,但是,Swift建议使用更安全的方法来创建变量输出数据。

var :

在没有数据的情况下创建变量的更安全方法

var = ()

上面的语法创建变量并同时初始化变量。

范例

 让someOtherString:Stringvar someOtherVariableNumberNotSafe:Intvar someOtherVariableNumberSafer = Int() 

在上面的示例中,我们创建了一个常量和一个变量。 请注意,冒号(:)不需要空格。

为常量和变量赋值:

  let someOtherString:Stringvar someOtherVariableNumber:IntsomeOtherString =“该字符串一旦分配就不能再更改。” someOtherVariableNumber = 23someOtherVariableNumber = 100 

对于常量,我们只能分配数据一次。 之后,我们将无法重新分配数据。 另一方面,只要数据类型是整数,我们就可以用不同的数据值重新分配变量。

同样,我们可以通过指示最后一个变量的数据类型在语句中声明多个常量或变量。

  var sample1,sample2,sample3:UIntlet sample4:Float,sample5:String,sample6:Int 

注意:

  • 在上面的示例中,sample1,sample2和sample3具有相同的数据类型

重要的提示:

尽管我们可以在不分配数据的情况下声明常量或变量。 建议不要这样做,因为当我们忘记将数据分配给声明的变量时,这可能会使我们的代码不安全。 为了声明常数,我们应该在声明期间分配值。 仅在绝对必要时,才应使用上述方法。 对于变量,我们可以在不分配数据的情况下同时声明它们并初始化变量。

以下示例重复了前面的示例,但是我们在不分配数据的情况下初始化了变量。

例:

  // var someOtherVariableNumber:Int 
var someOtherVariableNumber = Int()
someOtherVariableNumber

当需要声明变量但不需要为它分配任何数据时,以上示例是推荐的做法。

在下面的示例中,我们通过指示数据类型来声明变量。 同时,我们还提供其初始值。 这样的声明是不必要的,因为尽管数据可以被系统接受,但是它可以执行数据类型推断。

例:

  //以下语句是可接受的,尽管不需要包括数据类型。 
让someConstant3:Int = 1000
var someString3:String =“另一个可变的字符串”

提醒一下,Swift仅能推断Int,String,Bool和Double。 在下面的示例中,我们必须包含数据类型,因为Swift无法推断出诸如Float,UInt,Int32等数据类型。

例:

  //在以下示例中,我们必须使用数据类型注释,因为Swift无法推断此类数据类型let someFloat:Float = 25.36let someUnsignedInteger:UInt = 2656let someBitSizeInteger:Int32 = 5646532 

在某些情况下,变量或常量的名称使用相似的数据类型,我们可以通过在数据声明期间添加类型注释来避免混淆。 这将有助于程序员避免在数据声明期间出错。

例如,确定或区分整数和浮点数可能会造成混淆。

在上面的示例中,第一个数字是整数,而第二个数字是浮点数。 对于第二个数字,如果我们忘记输入0.0并输入0; 那么数据类型将被推断为整数。 为了确保我们声明的是浮点数,我们可以像第三个数字一样添加类型注释。 因此,我们建议当需要将变量初始化为零时,最好包括数据类型,以避免像忘记输入0.0而不是0这样的错误。

在另一种情况下,变量或常量的名称非常相似。 使用数据类型注释声明它们有助于区分名称相似的不同变量。

在前面的示例中,两个变量名称非常相似。 如果我们犯了如下错误,会发生什么:

在前面的示例中,即使我们犯了错误也不会出错。 如果使用数据类型注释声明,则结果将显示错误。

要打印常量或变量,我们只需要将常量或变量放在括号内即可。

例:

 让someText =“此文本是固定的。” var someNumber = 986print(someText)print(someNumber)someNumber = 123print(someNumber) 

要打印多个变量,我们可以在变量之间插入逗号

例:

 让someText =“此文本是固定的。” var someNumber = 986print(someText,someNumber)someNumber = 123let anotherNumber = 374print(someNumber,anotherNumber) 

我们可以将多个字符串打印到语句中。

例:

 让someText =“这是一些文本” 
let someText2 =“。这是第二个句子,将与第一个句子结合在一起”
let someText3 =“。第三句。” //以下打印语句无法连接2个变量
打印(someText)
print(someText2)//下面的print语句可以将3个字符串连接在一起,并在变量之间留一个空格
打印(someText,someText2,someText3)

如果我们想打印一些字符串文字和变量来解释数据,会发生什么? 打印功能使用字符串插值。 为此,我们需要用\(constant_or_variable)封闭常量或变量。

例:

 让收入= 143000 
print(“本赛季的收入是US $ \(收入)。这是一个好季节。”)

Print函数实际上表示为print(_:separator:terminator :)。 第一个参数是打印项目。 它可以是字符串文字,数字文字,常量或变量。

第二个参数是多个项目的分隔符。 默认值为单个空格。 如果要更改分隔符,可以使用参数进行更改。

以下示例显示了使用默认分隔符打印多个项目:

例:

 打印(1,2,3,4,5) 

以下示例显示使用自定义分隔符“ =>”打印多个项目

 打印(1,2,3,4,5,分隔符:“ =>”) 

第三个参数是终止符。 默认情况下,打印功能将包含一个新行(\ n)作为终止符。 这意味着打印打印语句将在新的一行开始。 但是,如果我们要在第一个变量之后立即打印第二个变量而没有换行符,可以将终止符更改为“”。 请参见下面的示例。

例:

  let prnMessage1 =“这是示例消息。” 
let prnMessage2 =“这是第二条消息。” print(prnMessage1,终止符:“”)
打印(prnMessage2)

最初于 2018 年3月7日 发布在 blog.swifticode.com 上。