【Swift4.0】常量和变量

翻译能力有限,如有不对的地方,还请见谅!希望对Swift的学习者有所帮助,使用的编写工具:JQNote    InNote(iPhone)

常量和变量关联一个名称(比如:maximumNumberOfLoginAttempts 和 welcomeMessage)和一个特殊类型的值(比如:数字10和字符串“Hello”)。一个常量一旦被赋值后就不能再改变,一个变量可以再次被赋予不同的值。

声明常量和变量

常量和变量在使用前必须要声明。你可以使用关键字let来声明一个常量,使用关键字var来声明一个变量。下面是一个如何声明变量和常量的例子:

letmaximumNumberOfLoginAttempts= 10

varcurrentLoginAttempt= 0

这段代码表示:“声明了一个新的常量maximumNumberOfLoginAttempts,并且给它赋值10. 然后声明了一个新的变量currentLoginAttempt,并且设置了一个初始化的值0.” 在这个例子中,最大的登录次数被声明为一个常量,因为最大值不会再改变。当前登录的次数被声明为一个变量,是因为这个值在每次尝试登录失败后必须增加。你可以在一行声明多个变量或者常量,用逗号隔开:

varx=0.0,y=0.0,z=0.0

【注意】如果代码中一个存储值不会发生改变,那么总是使用关键字let声明它为常量,如果存储值需要被改变,那么就使用变量。

类型注释

当你声明一个常量或者变量时,为了该常量或者变量可以存储值的类型更清晰明确,你可以这样添加一个类型注释:在变量或者常量名称后添加一个冒号,空格,然后再加上类型名称。下面的例子为一个变量welcomeMessage提供了一个类型注释,表示该变量可以存储String类型的值:

varwelcomeMessage:String

这段代码表示:“声明了一个String类型的变量welcomeMessage”,这意味着“可以存储任何String类型的值”。可以把它看作是可以存储的“数据的类型”(或者“类似的数据类型”)。现在变量welcomeMessage可以被设置任何字符串值:welcomeMessage=“Hello”。你可以在一行定义多个相同类型的变量,用逗号隔开,只在最后一个变量名称后添加一个单独的类型注释:

varred,green,blue:Double

【注意】很少需要在实际中编写类型注释,如果你在定义一个常量或者变量的时候给它设置了初始化值,Swift总是会自动推断出该变量或常量的类型。在后续的类型安全和类型推断中会有介绍。在上面的例子中,welcomeMessage没有设置初始化值,因此它的类型就是特别声明的类型注释String,而不是根据初始化值推断的类型。

命名常量和变量

常量和变量的名称可以包含几乎任何字符,包括Unicode字符:

letπ=3.14159

let你好="你好世界"

常量和变量名不能包含空格字符、数学符号、箭头、私有(或无效)Unicode代码,或者行-和画的字符。也不能以数字开头,尽管数字可能被包括在名字的其他地方。一旦你声明了一个确定类型的常量或者变量,就不能再次使用相同的名称来声明它,或者存储一个不同类型的值给它。也不能把一个常量变为为变量,或者把一个变量变为常量。

【注意】如果你使用了与Swift关键字一样的名称来命名一个常量或者变量,用引号(`)把该关键字括起来。然而,尽量避免这样使用,除非你别无选择。

打印常量和变量

你可以打印一个常量或者变量的值,通过print(_:separator:terminator:)方法:

print(friendlyWelcome)

print(_:separator:terminator:)是一个全局函数,可以打印一个或多个值到合适的输出端。例如,在Xode中,print(_:separator:terminator:)函数打印它的输出到“console”面板中。separator和terminator参数有默认值,因此调用的时候,可以忽略它们。缺省的,该函数通过添加换行符来终止一行的打印,如果没有换行符,传一个空字符串给terminator参数,例如:print(someValue, terminator: “”)。

Swift使用字符串插值来包含一个变量或者常量名称作为一个长字符串中的占位符,提示swift用该常量或者变量的值来替换它。如下:

varfriendlyWelcome="Bonjour!"

print("The current value of friendlyWelcome is \(friendlyWelcome)")

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,468评论 5 473
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,620评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,427评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,160评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,197评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,334评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,775评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,444评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,628评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,459评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,508评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,210评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,767评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,850评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,076评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,627评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,196评论 2 341

推荐阅读更多精彩内容

  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 3,766评论 1 10
  • 关于 Swift 重要这个文档所包含的准备信息, 是关于开发的 API 和技术的。这个信息可能会改变, 根据这个文...
    无沣阅读 4,267评论 1 27
  • 86.复合 Cases 共享相同代码块的多个switch 分支 分支可以合并, 写在分支后用逗号分开。如果任何模式...
    无沣阅读 1,336评论 1 5
  • 吃过午饭,我坐在办公室里面写教案,帅帅走到我的身边,耷拉着脸,气冲冲地说:“李老师,咱们班的好几个女生都说喜欢我。...
    心若已止水阅读 675评论 1 3
  • 昨日与一干老头闲聊。 大家都进入了一种工作模式:大量时间写proposal。 也就是说要先工作很长时间去fight...
    SandmanLi阅读 329评论 0 0