老码说编程玩转swift读书笔记1

3.1

3.2
变量和常量

let常量只读,var变量可读可写

单行代码可声明多个常亮或者变量

Let a = 1,b=2,c=3

3.2.1
常量和变量的命名

  • 不能包含任何数学符号
    空格和剪头
  • 不能用数字作为标识符的首字母,可放置其他位置
  • 不得重名
  • 常亮变量不得互相转换
  • 常亮变量类型一经定义不得发生改变
  • 不要使用Swift关键字作为变量或者常量名,如果有这个需要,用(‘)括起来

3.2.2打印常量和变量

  • println(let)
  • println(var)
  • 打印内插在字符串中的常量或变量的值或表达式

语法为:把字符串中的常量名或变量名或表达式用括号括起来,并在前面加反斜杠(\let)   print("       
你的名字是 (\name)        ")

  • Print println二者唯一的却别是ln会加一个换行符
    nslog也是ok的

3.3类型标注Type
Annotations

swift有类型推到(Type
Inference)但是类型推导并不是使用于所有场景,比如在类型参数中,就必须先定义一个类型作为占位符使用,否则编译器无法进行类型推导

使用类型标注为常亮或变量指定类型 
var
welcomMessage : String

3.4注释

//单行注释

/* */多行注释,多行注释里面可以嵌套多行注释

3.5分号的落寞

不强制要求为每一个条语句(Statement)添加分号

如果要把多行语句放到一个物理行,那就必须添加分号

//这里的分号为强制添加

let myString =
"HelloWorld"; println(myString)

//这里的分号可不加

print("Hello World")

3.6语法界的直性子--整形

整型两种
有符号
signed   
无符号unsigned  两种都包括0,无符号无负数

8bit占一个字节,UInt8
16 32 64分别指该整形做占用的内存空间大小

如果没有特殊的需求,都不应显示地为一整数指名类型,即使我们知道这个整形不可能为负数,这是因为,让swift编译器为我们根据平台的情况自动选择实际类型,这样可以提高代码平台的灵活性,减少类型间转换的次数。而且即使实在32位机上,int的取值范围也从-2147483638到
2147483647 对大多数情况来说,这也够用了!

3.7语法界学术范---浮点型

默认double

3.8类型安全和类型推导

什么是类型安全:

类型安全就是在编译代码时,执行严格的类型检查,把所有类型不匹配都标注成一个错误,好处是,可以让程序员在早起发现并解决一些其他非类型安全的语言中由隐式类型转换所引入的错误,从而提高程序的健壮性!

var anInt:Int =10

var aChar:Character=
"a"

//编译时错误,加号运算符不支持左操作数为Int,右操作数为Character

var anotherChar:Character=
anInt + aChar

//编译时错误,Character不能转换为Int

var anotherInt:Int=
anotherChar

其他非类型安全中,常见的变量或常量间的隐世类型转换,在swift中是不被允许的!

但这并不是说声明变量常量的时候要指定类型,因为还有类型推到。

整数被推导成int

小数被推导成double

还有一点:

Swift中,数字字面量之间的运算,支持隐式类型转换,但数字类型的变量及常量之间的运算,则不支持隐式类型转换,简单来说,字面两之间的运算和变量或常量之间的运算规则不同。

Pi = 3 + 0.1415092允许

Pi =
intLet +
floatLet不被允许

3.9数字字面量Literals

直接出现在代码中的值和变量常量相对应

整形字面两:

  • 十进制格式
    ,数字无前缀
  • 二进制格式,数字加前缀0b
  • 八进制格式,数字加前缀0o
  • 十六禁止格式,数字加前缀0x

let decimalInt =
17

let binaryInt  =
0b10001

let octalInt =
0o21

let hexInt = 
0x11

浮点型字面量:

  • 十进制无前缀

    • 1.25e2
    • 1.25e-1
  • 十六进0x制有前缀两种
    • 0xFp2
    • 0xFp-2             15乘以2的-2次方
  • 三种不同浮点型字面量的写法

let decimalDouble =
12.1875

let exponentDouble =
1.21875e1

let hexadecimalDouble =
0xC.3p0

  • Swift增加了字面量的可读性

let paddedint =
001234 
// 实际上等于1234

let oneMillion =
1_000_000
//等于1000000

let justOverOneMillion =
1_000_000.000_000_1
//等于1000000.0000001

时间: 2024-10-25 12:41:00

老码说编程玩转swift读书笔记1的相关文章

《老码说编程之玩转Swift江湖》一书终于出版了

今天我们的第一本基于XCode6.1最新版Swift语法编写的书籍上市发售了,它有个可爱的名字:<老码说编程之玩转Swift江湖>,还有个漂亮的封面: 本书不是出身名门,它只是五位IT老码农的孩子 五月份的一天,我们几个老码农一起去软件园门口的小面馆吃饭,聊天之余突然对码农的生活产生了很多的抱怨,无聊,没事做,忧虑未来的路在何方,最后大家的意见趋于一致,决定学点什么或者做点什么,通过这次的讨论,一个以学习为主的小团队诞生了并且取了一个无奈的名字:老码团队-OldCoder,听起来多么的苍凉.

《老码说编程之玩转Swift江湖》一书排名飙升,500电话卡感恩小伙伴

感谢老码那些可爱的小伙伴们,有你们的大力支持<老码说编程之玩转Swift江湖>一书,京东上"Swift"关键字排行蹿升至第七位,淘宝上"Swift 书"的关键字排行第三.@英子DD 送点东西给我们的粉丝吧.老码团队的五位老家伙每人贡献100元充值卡送10位粉丝.转此条微博者有机会拿到. 微博地址:http://t.cn/RzBdsdg

《java并发编程的艺术》读书笔记-第三章Java内存模型(二)

一概述 本文属于<java并发编程的艺术>读书笔记系列,第三章java内存模型第二部分. 二final的内存语义 final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量.可以参照之前整理的关键字final.这里作者主要介绍final域的内存语义. 对于final域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序. 初次读一个包含final域的对象的引用,与随后初次读这

《Android编程权威指南》-读书笔记(三)Git初探

<Android编程权威指南>-读书笔记(三)Git初探 版本控制-Git 为什么要使用版本控制 什么是版本控制?我为什么要关心它呢?版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.在本书所展示的例子中,我们仅对保存着软件源代码的文本文件作版本控制管理,但实际上,你可以对任何类型的文件进行版本控制. 如果你是位图形或网页设计师,可能会需要保存某一幅图片或页面布局文件的所有修订版本(这或许是你非常渴望拥有的功能).采用版本控制系统(VCS)是个明智的选择.有了它你就

我编程,我快乐——读书笔记(二)

我编程,我快乐--读书笔记(二) 第二章 在产品上投资 1. 我之所以说自己有天赋,是因为我发现自己在工作中不断学习,并且不断进步. 2. 只有向这件产品中投入心血.汗水.眼泪和资金,才能使它真正具有价值. 3. 要主动问,不要等着别人来告诉你.授人以鱼不如授人以渔. 4. 如果你想要雇佣某人来为你工作,你会希望这个人总是要受那些专家的支配吗?我不愿意.我想要的是一个能够自立的员工. 5. 与客户的互动式非常重要的,清楚地了解客户的要求比似懂非懂然后自己填写细节要好得多. 6. 学习行业是如何运

我编程,我快乐——读书笔记(一)

我编程,我快乐--读书笔记 程序员职业规划之道 程序员生存.成功.制胜的法则 源自IT精英的职业发展秘诀 热爱工作,享受生活 前言 1. 每个人都有卓越之处,但需要找到自己真正喜欢的事情,并把它激发出来. 2. 我认为从事卓越的职业是拥有有意义人生的起点.你不仅成为了一名更优秀更具价值的员工,更成为了一个更有价值的人. 3. 一个成年人大部分的清醒时间都在工作中度过,那么热爱工作就是热爱生活. 4. 我们工作最终的目标是追求快乐.如果你把目光放远一些,你就会发现自己为了追求更高的薪水,或许就会失

通读《STL源码剖析》之后的一点读书笔记

[QQ群: 189191838,对算法和C++感兴趣可以进来] 直接逼入正题. Standard Template Library简称STL.STL可分为容器(containers).迭代器(iterators).空间配置器(allocator).配接器(adaptors).算法(algorithms).仿函数(functors)六个部分. 迭代器和泛型编程的思想在这里几乎用到了极致.模板或者泛型编程其实就是算法实现时不指定具体类型,而由调用的时候指定类型,进行特化.在STL中,迭代器保证了ST

进程和程序:编写shell——《Unix/Linux编程实践教程》读书笔记(第8章)

1.Unix shell的功能 shell是一个管理进程和运行程序的程序.所有常用的shell都有3个主要功能: (1)运行程序: (2)管理输入和输出 (3)可编程 shell同时也是带有变量和流程控制的编程语言. 2.Unix的进程模型 一个程序是存储在文件中的机器指令序列,一般它是由编译器将源代码编译成二进制格式的代码.运行一个程序意味着将这些机器指令序列载入内存然后让处理器(CPU)逐条执行.在Unix术语中,一个可执行程序是一些机器指令机器数据的序列.一个进程是程序运行时的内存空间和设

系统调用操作文件——《Unix/Linux编程实践教程》读书笔记

1.who命令通过读系统日志的内容显示当前已经登录的用户. 2.Unix系统把数据存放在文件中,可以通过以下系统调用操作文件: open(filename, how) creat(filename, mode) read(fd, buffer, amt) write(fd, buffer, amt) lseek(fd, distance, base) close(fd) 3.进程对文件的读/写都要通过文件描述符,文件描述符表示文件和进程之间的连接. 4.每次系统调用都会导致用户模式和内核模式的切