原文:Swift中文教程(二)--简单值

  Swift使用let关键字声明常量,var关键字声明变量。常量无需在编译时指定,但至少要被赋值一次。也就是说,赋值一次多次使用:

 var myVariable = 42
myVariable = 50
let myConstant = 42

这里的常量赋值之后值不能更改,应该提高重用性。

  一个常量或变量的值与类型必须是一致的。不过,你不需要指明它的类型,因为编译器会根据你所赋的值推断它的类型,在上面的例子中,编译器会判断到myVariable是一个整型(integer),因为它的初始值是一个整数。

  如果初始值的信息不够明确(以至于类型不好判断),可以在变量名后用冒号写明类型:

 let implicitInteger = 70
let implicitDouble = 70.0
let explicitDouble: Double = 70

练习:

创建一个常量,类型为Float,值为4。

let implicitFloat: Float = 70

  值永远不会隐含转换到其他类型。如果你需要转换一个值到其它不同类型,明确的构造一个所需类型的实例。

let label = "The width is "
let width = 94
let widthLabel = label + String(width)

练习:

试着删除String方法,你会得到什么错误?

还有一种更简单的字符串中含值的方式:把值放在小括号里面,并以反斜线开头,如:

let apples = 3
let oranges = 5
let appleSummary = "I have \(apples) apples."
let fruitSummary = "I have \(apples + oranges) pieces of fruit.

练习:

使用 \() 来包含一个浮点数计算到字符串,并包含某人的名字来问候。

let pie:Double = 3.14

let pin:Double = 3.15

let greetPie = "hello,\(pie + pin)"

用[]创建数组或字典,并使用下标或键名访问:

 “var shoppingList = ["catfish", "water", "tulips", "blue paint"]
shoppingList[1] = "bottle of water" var occupations = [
"Malcolm": "Captain",
"Kaylee": "Mechanic",
]
occupations["Jayne"] = "Public Relations”

创建一个空数组或字典,使用初始化赋值语句:

 “let emptyArray = String[]()
let emptyDictionary = Dictionary<String, Float>()”

如果类型信息无法推断,你可以写空的数组-- "[]" 或空的字典--"[:]",例如你为变量赋新值或为函数传参:

shoppingList = []   //Went shopping and bought everything.

Swifter-QQ群:362232993,同好者进~

Swift中文教程(二)--简单值的更多相关文章

  1. Swift中文教程(四)--函数与闭包

    原文:Swift中文教程(四)--函数与闭包 Function 函数 Swift使用func关键字来声明变量,函数通过函数名加小括号内的参数列表来调用.使用->来区分参数名和返回值的类型: fu ...

  2. Swift中文教程(一)--欢迎来到Swift的世界

    原文:Swift中文教程(一)--欢迎来到Swift的世界 Apple凌晨时在WWDC发布了Swift编程语言,语法简介我很喜欢,市面上没有完整的中文教程,我在ibooks里面下载了英文原版,现在开始 ...

  3. Swift中文教程(三)--流程控制

    原文:Swift中文教程(三)--流程控制 Swift用if和switch编写条件控制语句,用for-in,for,while和do-while编写循环.条件控制语句和循环语句中,小括号是可选的,但花 ...

  4. Swift中文教程(六)--枚举和结构

    原文:Swift中文教程(六)--枚举和结构 Enumerations 枚举 使用 enum 来创建一个枚举.跟Classes(类)和其他类型的命名方式一样,枚举也可以有Method(方法). enu ...

  5. Swift中文教程(五)--对象和类

    原文:Swift中文教程(五)--对象和类 Class 类 在Swift中可以用class关键字后跟类名创建一个类.在类里,一个属性的声明写法同一个常量或变量的声明写法一样,除非这个属性是在类的上下文 ...

  6. Swift中文教程(二)基本运算符

    1.基本运算符 运算符是一种特定的符号或表达式,用来检验.改动或合并变量.比如,用求和运算符+能够对两个数字进行求和(如let i = 1 + 2):略微复杂一点的样例有逻辑与操作符&& ...

  7. Apple Swift 中文教程 高速參考 基本的语法

    总的来说.语法有java的味道,也有python的味道,还有swift自己的味道. 有些语法还是挺不伦不类的,不太好理解,即使你有几年的java或python经验,也不见得有些语法你能非常轻松的看明确 ...

  8. Swift(一)简单值

    Swift的源文件扩展名是.swift 按照国际惯例,学习一门新语言写的第一个程序都是在屏幕上输出一句 “Hello, world!” .在Swift里,一行代码就搞定了: 如果你以前写过C或者Obj ...

  9. Swift中文教程 第2章 基本运算符 (20140604更新)

    今天我在下午又进行了新的翻译,之前我翻译的大家有没有看啊,感觉如何,我昨天下午不小心点了什么原先的文章都没了,大家的评论也没了,现在我也找不回来了,希望大家能继续给我新的评论和支持点个推荐,毕竟现在学 ...

随机推荐

  1. 网站通常使用一些javascript包裹 简化电话

    //对于Web地址参数 //前面加"=="进行标识,否则直接返回 //解码时依据是否含有"=="标识来决定是否要解码 var base64EncodeChars ...

  2. C++结构体之统计最高最低分

    [Submit][Status][Web Board] Description 输入学生的姓名和成绩,统计出最高分的学生和最低分的学生. Input 输入5个学生的姓名和分数,用结构体完成 Outpu ...

  3. Java中使用Lua脚本语言(转)

    Lua是一个实用的脚本语言,相对于Python来说,比较小巧,但它功能并不逊色,特别是在游戏开发中非常实用(WoW采用的就是Lua作为脚本的).Lua在C\C++的实现我就不多说了,网上随便一搜,到处 ...

  4. Statement和PreparedStatement的区别; 什么是SQL注入,怎么防止SQL注入? (转)

    问题一:Statement和PreparedStatement的区别 先来说说,什么是java中的Statement:Statement是java执行数据库操作的一个重要方法,用于在已经建立数据库连接 ...

  5. IT忍者神龟之使用 PowerDesigner

    1. 启动 PowerDesigner 新建物理数据模型 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdmlweWhk/font/5a6L5L2T/fon ...

  6. 追索权 Eclipse + NDK error: stray &#39;\24&#39; in program

    [size=16px][b][color=#FF0000]追索权 Eclipse + NDK  error: stray '\24' in program[/color][b][/b][/b][/si ...

  7. 在Sql中使用Try Catch

    原文:在Sql中使用Try Catch 今天在写sql中出现了!我想在sql使用trycatch吧! 哎..但是语法又记不住了! 那就清楚我们的google大师吧! 嘿,网上关于在sql中使用Try ...

  8. [three.js] 地图不能解决重复的问题 Solving with Texture RepeatWrapping Fail Issue

    有些事情,如果你正在寻找侯,怎么也找不到. 有的东西,不经意间,到处: 我认为这是生活中常有的事. 然而,在互联网的浩瀚大海,这同样适用. 正常的一小会儿的积累, 投入少, 积累, 洋大海, 载起一帆 ...

  9. 软体project(两)——软体project

        每本书的第一章,都是在讲宏观的东西.软工也不例外.接下来.我们就要介绍软件project"是什么"的问题. 一.是什么? watermark/2/text/aHR0cDov ...

  10. epoll()无论涉及wait队列分析

    事件1. epfd-file->eventpoll->wq: struct eventpoll {     ...     wait_queue_head_t wq;     //用于ep ...