分号

Swift 并不强制要求你在每条语句的结尾处使用分号(;)

你打算在同一行内写多条独立的语句必需要用分号

let cat = "?

??

?

"; println(cat) // 输出 "??

??

"

常量和变量把一个名字(比方maximumNumberOfLoginAttempts或者welcomeMessage)和一个指定类型的值(比方数字10或者字符串"Hello")关联起来。常量的值一旦设定就不能改变,而变量的值能够任意更改。

声明常量和变量

常量和变量必须在使用前声明,用let来声明常量,用var来声明变量。

以下的样例展示了怎样用常量和变量来记录用户尝试登录的次数:

let maximumNumberOfLoginAttempts = 10
var currentLoginAttempt = 0 

这两行代码能够被理解为:声明一个名字是maximumNumberOfLoginAttempts的新常量。并给它一个值10。

然后,声明一个名字是currentLoginAttempt的变量并将它的值初始化为0.

在这个样例中,同意的最大尝试登录次数被声明为一个常量,由于这个值不会改变。当前尝试登录次数被声明为一个变量。由于每次尝试登录失败的时候都须要添加这个值。

你能够在一行中声明多个常量或者多个变量,用逗号隔开:

var x = 0.0, y = 0.0, z = 0.0

注意:假设你的代码中有不须要改变的值。请使用letkeyword将它声明为常量。

仅仅将须要改变的值声明为变量。

类型标注

当你声明常量或者变量的时候能够加上类型标注(type annotation)。说明常量或者变量中要存储的值的类型。

假设要加入类型标注。须要在常量或者变量名后面加上一个冒号和空格。然后加上类型名称。

这个样例给welcomeMessage变量加入了类型标注,表示这个变量能够存储String类型的值:

var welcomeMessage: String 

声明中的冒号代表着“是...类型”,所以这行代码能够被理解为:

“声明一个类型为String。名字为welcomeMessage的变量。”。“类型为String”的意思是“能够存储随意String类型的值。”

welcomeMessage变量如今能够被设置成随意字符串:

welcomeMessage = "Hello" 

注意:一般来说你非常少须要写类型标注。

假设你在声明常量或者变量的时候赋了一个初始值,Swift能够判断出这个常量或者变量的类型,请參考类型安全和类型判断。在上面的样例中,没有给welcomeMessage赋初始值。所以变量welcomeMessage的类型是通过一个类型标注指定的。而不是通过初始值判断的。

常量和变量的命名

你能够用不论什么你喜欢的字符作为常量和变量名,包含 Unicode 字符:

let π = 3.14159
let 你好 = "你好世界"
let ???

???

?? = "dogcow"

常量与变量名不能包括数学符号,箭头,保留的(或者非法的)Unicode 码位,连线与制表符。

也不能以数字开头。可是能够在常量与变量名的其它地方包括数字。

一旦你将常量或者变量声明为确定的类型,你就不能使用同样的名字再次进行声明。或者改变其存储的值的类型。

同一时候,你也不能将常量与变量进行互转。

注意:假设你须要使用与Swift保留keyword同样的名称作为常量或者变量名,你能够使用反引號(`)将keyword包围的方式将其作为名字使用。不管怎样。你应当避免使用keyword作为常量或变量名。除非你别无选择。

你能够更改现有的变量值为其它同类型的值,在以下的样例中,friendlyWelcome的值从"Hello!"改为了"Bonjour!":

var friendlyWelcome = "Hello!"
friendlyWelcome = "Bonjour!"
// friendlyWelcome 如今是 "Bonjour!" 

与变量不同,常量的值一旦被确定就不能更改了。尝试这样做会导致编译时报错:

let languageName = "Swift"
languageName = "Swift++"
// 这会报编译时错误 - languageName 不可改变 

输出常量和变量

你能够用println函数来输出当前常量或变量的值:

println(friendlyWelcome)
// 输出 "Bonjour!" 

println是一个用来输出的全局函数,输出的内容会在最后换行。假设你用 Xcode,println将会输出内容到“console”面板上。(还有一种函数叫print。唯一差别是在输出内容最后不会换行。)

println函数输出传入的String值:

println("This is a string")
// 输出 "This is a string" 

与 Cocoa 里的NSLog函数类似的是。println函数能够输出更复杂的信息。这些信息能够包括当前常量和变量的值。

Swift 用字符串插值(string interpolation)的方式把常量名或者变量名当做占位符增加到长字符串中,Swift 会用当前常量或变量的值替换这些占位符。

将常量或变量名放入圆括号里,并在开括号前使用反斜杠将其转义:

println("The current value of friendlyWelcome is \(friendlyWelcome)")
// 输出 "The current value of friendlyWelcome is Bonjour! 

注意:字符串插值全部可用的选项,请參考字符串插值。

赵雅智_Swift(2)_swift常量和变量相关推荐

  1. 赵雅智_android多线程下载带进度条

    progressBar说明 在某些操作的进度中的可视指示器,为用户呈现操作的进度,还它有一个次要的进度条,用来显示中间进度,如在流媒体播放的缓冲区的进度. 一个进度条也可不确定其进度.在不确定模式下, ...

  2. 赵雅智_Fragment生命周期

    官网帮助文档链接:  http://developer.android.com/guide/components/fragments.html 主要看两张图.和跑代码 一,Fragment的生命周 二 ...

  3. 赵雅智:service_startService生命周期

    案例演示 布局文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xml ...

  4. 赵雅智:js知识点汇总

    转载于:https://www.cnblogs.com/blfshiye/p/5250202.html

  5. 赵雅智_名片夹(5)_Android中listview可折叠伸缩仿手风琴效果(动态)

    转载请标明出处:http://blog.csdn.net/zhaoyazhi2129/article/details/38080857 之前写了一篇静态数据listview显示手风琴效果,今天写的博客 ...

  6. 赵雅智_名片夹(4)_Android中listview可折叠伸缩仿手风琴效果(静态)

    转载请标明出处:http://blog.csdn.net/zhaoyazhi2129/article/details/38060769 最近些一个名片夹得app.其中名片夹客户要求做成可折叠伸缩的效果 ...

  7. 赵雅智:android发彩信操作

    string.xml,布局文件,添加权限和 发送短信文章地址:http://blog.csdn.net/zhaoyazhi2129/article/details/8985598 SmsActivit ...

  8. 赵雅智:android教学大纲

    带下划线为详细内容链接地址.点击后可跳转.希望给大家尽一些微薄之力.眼下还在整理中 教学章节 教学内容 学时安排 备注 1 Android高速入门 2 Android模拟器与常见命令 3 Androi ...

  9. 赵雅智_service电话监听2加接通电话录音

    步骤: 创建CallStateService继承Service 取得电话服务 监听电话动作 电话监听的对象 没有电话时 停止刻录 重设 刻录完成一定要释放资源 电话响铃时 从麦克风采集声音 内容输出格 ...

最新文章

  1. 程序员不要去这样的公司
  2. git和github的关系
  3. Java程序员必备基础:Java代码是怎么运行的?
  4. Windows和Linux双系统时间不对的问题。
  5. 支付宝的商业与技术创新双轮驱动 创造数字时代普惠金融“奇迹”
  6. mysql二级缓存,mybatis的动态sql和二级缓存
  7. 图论 —— 图的连通性 —— Tarjan 求双连通分量
  8. JavaScript文档对象模型document对象改变Html元素样式属性(5)
  9. 现代软件工程第一次结对编程(黄金点游戏)总结
  10. 如何检索文献系列:检索文献窥秘
  11. python 截取字符串的某一个字符
  12. 不能将下载行为传输到IDM插件的解决方法
  13. “一寺一墓”的典型格局
  14. nlp情感分析经典书籍推荐_通过监督学习对书籍进行情感分析
  15. 【codeforces 760B】Frodo and pillows
  16. lettuce连接池真有必要吗?
  17. AJAX框架衣柜改造出租屋,小伙爆改城中村出租屋,衣柜挂墙上第一次见,完工后房东愣了!...
  18. 机器人方队解说词_方队解说词3篇
  19. 计算机风扇介绍,如何选择计算机风扇?
  20. neutron服务宕机导致nova无法创建云主机

热门文章

  1. Netty设计模式应用
  2. python--学习1
  3. 利用机器学习进行金融数据风险评估
  4. Java多线程编程核心技术-多线程基础使用
  5. 第二节JVM JRE 和JDK介绍
  6. redis优化查询的两种方式
  7. Java程序员到架构师必须要学习到的知识点有哪些呢?
  8. jQuery扩展实现复选框批操作
  9. 阿里云业绩同比增126% 云服务现“3A鼎立”
  10. ABP源码分析二十五:EventBus