这篇博客将会学习到Swift中的常量Constants和变量Variable。这是学习语言的基础。当中能够看到Swift每句后面基本都是没有;分号的,假设有加;分号的习惯,也能够加上。

(1)常量声明:Swift将会使用keywordlet来声明一个常量。

定义常量之后不能再进行改动,否则会报错。

let maxNum = 100

maxNum = 200   //这里会报错,常量值不能进行改动。

(2)变量声明:Swift将会使用keywordvar来声明一个变量,变量的值能够改变。

var minNum = 1

minNum = 2  //能够改动变量的值

(3)能够在同一行声明多个常量和变量,中间用。逗号分隔,像C语言一样。

var x=1.0,y=2.0,z=3.0

(4)Swift是一个类型安全的语言。通过var定义的变量会进行类型检查。

var maxNum = 100   //此时默认maxNum是一个整型

maxNum = "Hello"   //会报错。不能给整型赋值字符串

(5)变量也能够在声明的时候直接指定类型。例如以下就指定为字符串。

var myName:String

myName   = "Jack"

(6) 同一时候也能够在同一行声明多个指定了类型的变量。

var red,blue,green:Int

red=1

blue=2

green=3

(7)基本数据类型:Int ,Double,Float。String

当中整型其它还有Int8,Int16,Int32,在一般的编程中Int就足够了。详细差别能够參考Swift官方文档。

Double是32位的浮点数,一般能够精确到小数点后面15位;

Float是16位的浮点数。一般能够精确到小数点后面6位;

String是字符串类型,也是用“双引號”括起来的,与Java比較像。与OC要区分。前缀不须要@符号。

(8)Swift也支持使用不同进制来定义Int类型,能够使用二进制。八进制,十进制。十六进制。

let decimalInt:Int = 17//十进制表示整型,直接写数字即可
let binaryInt:Int = 0b10001//二进制表示整型,数字要以0b打头
let octalInt:Int = 0o21//八进制表示整型。数字要以0o打头
let hexadecimalInt:Int = 0x11//十六进制表示整型。数字要以0x打头

Swift中输出结果例如以下:表示的数字都是十进制下的17。

(9)Swift也能够使用科学计数法来表示浮点数。

let float_normal = 0.012
let float_science = 1.2e-2

输出结果例如以下:符合我们的预期。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

(10)相同也能够在使用科学计数法的时候指定浮点数类型。

let normal:Double = 0.012
let science:Double = 1.2e-2

输出结果同上。

(11)方便的表示大数的方法。中间使用_下划线隔开。

使看起来更加简洁。

let bigNumA = 100000000  //原始的表示方法

let bigNumB = 100_000_000  //外国人喜欢的表示方法

let bigNumC = 1_0000_0000   //中国人喜欢的表示方法

输出结果:符合我们的预期。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。

(12)当然,整型也是能够用科学计数法表示的。

let intNormal = 1000
let intScience = 1.0e3

输出结果例如以下:

(13)类型转换:Swift不支持不同类型的相互运算。如整型和浮点型相加会报错。

let a:Int = 3

let b:Double  = 0.1415926

let PI:Double  = a + b  //会在这里报错;

报错例如以下:

这里须要使用强制类型转换。第三行代码改为:

let PI:Double = Double(a) + b;

改动后结果输出例如以下:符合我们的预期。

表示仅仅有在同样的类型下才干进行算数运算。

(14)Swift是支持Unicode编码的,在Swift中的变量能够使用中文。

例如以下所看到的:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

总结下。常量和变量这个内容也是内容较多的。我们不是必需去死记硬背。在以后的项目开发中慢慢掌握就能够了。

github主页:https://github.com/chenyufeng1991  。欢迎大家訪问!

Swift学习笔记(二)——常量与变量的更多相关文章

  1. Swift学习笔记二

    Swift是苹果公司开发的一门新语言,它当然具备面向对象的许多特性,现在开始介绍Swift中类和对象的语法. 对象和类 用"class"加上类名字来创建一个类,属性声明和声明常量或 ...

  2. OC与Swift的区别二(常量、变量、运算符)

    4.常量与变量声明 oc的变量声明使用  类型 变量名 = 变量值的方式,其中类型为系统内置数据类型或自定义类型,变量名需由英文字母开头且不能包含特殊字符 swift变量声明使用 var 变量名 = ...

  3. Swift 学习笔记第一天-变量常量,及数据类型

    1.定义变量 用关键字 var 比如 var i=2 2.定义常量用let 如let c=3 可见Swift 定义时不用指定类型.由编译器推断 如果想指定类型 var i:Int32=2 练习 let ...

  4. Java学习笔记二---设置环境变量JAVA_HOME,CLASSPATH,PATH

    1.环境变量包括: JAVA_HOME,CLASSPATH,PATH 2.设置环境变量的目的: 路径搜索,方便查找到jdk的安装路径.方便搜索用到的类文件.方便搜索用到的可执行文件如java,java ...

  5. Go语言学习笔记二: 变量

    Go语言学习笔记二: 变量 今天又学了一招如何查看go的版本的命令:go version.另外上一个笔记中的代码还可以使用go run hello.go来运行,只是这种方式不会生成exe文件. 定义变 ...

  6. 【swift学习笔记】二.页面转跳数据回传

    上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字 ...

  7. amazeui学习笔记二(进阶开发4)--JavaScript规范Rules

    amazeui学习笔记二(进阶开发4)--JavaScript规范Rules 一.总结 1.注释规范总原则: As short as possible(如无必要,勿增注释):尽量提高代码本身的清晰性. ...

  8. JDBC学习笔记二

    JDBC学习笔记二 4.execute()方法执行SQL语句 execute几乎可以执行任何SQL语句,当execute执行过SQL语句之后会返回一个布尔类型的值,代表是否返回了ResultSet对象 ...

  9. tensorflow学习笔记二:入门基础 好教程 可用

    http://www.cnblogs.com/denny402/p/5852083.html tensorflow学习笔记二:入门基础   TensorFlow用张量这种数据结构来表示所有的数据.用一 ...

  10. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

随机推荐

  1. java源码之HashMap和HashTable的异同

    代码版本 JDK每一版本都在改进.本文讨论的HashMap和HashTable基于JDK 1.7.0_67 1. 时间 HashTable产生于JDK 1.1,而HashMap产生于JDK 1.2.从 ...

  2. vue2 router中的 @ 符号表示src

    vue2 router中的 @ 符号表示src 学习了:https://segmentfault.com/q/1010000009549802 这个是webpack起的别名: 在build/webpa ...

  3. 百度 谷歌 Twitter,这么多短链接服务(Short Url)究竟哪家强?

    一.短链接是什么 url=HPqdQ5VR3vA39x7ZWoWyNzwWnsDhTbh66BTpdzsJLroBDzFRm4JV-G818Zc027uZrwe7zxtxnD4H2FUahftpUK& ...

  4. 【源代码】将一个整数的每位数分解并按逆序放入一个数组中(用递归算法)(C语言实现)

    帮朋友做的,好像是一个面试题.假设不过考察递归的话.应该是够了,程序的健壮性和通用性都非常一般的说-- #include <stdio.h> #include <stdlib.h&g ...

  5. Spoj 1557 Can you answer these queries II 线段树 随意区间最大子段和 不反复数字

    题目链接:点击打开链接 每一个点都是最大值,把一整个序列和都压缩在一个点里. 1.普通的区间求和就是维护2个值,区间和Sum和延迟标志Lazy 2.Old 是该区间里出现过最大的Sum, Oldlaz ...

  6. 【笨木头Lua专栏】基础补充02:函数的几个特别之处

    没想到距离上一篇基础补充已经过了1年多了,近期准备捡回Lua,把基础都补补,今天来聊聊Lua的函数吧~ 0.环境 我突然对Lua又大感兴趣的最主要原因是,Cocos Code IDE開始浮出水面了,它 ...

  7. jdbc14 及 jdbc16 共存所带来的问题【未完待续】

    在JAVA中JDK版本号与JDBC版本号的一致性十分重要,开发都们经常会忽略了这一点导致非常多不必要的错误. 昨天给客户排查了一个关于EDB在JBoss中使用时关于这方面的问题,希望给大家一点启示. ...

  8. bzoj3436: 小K的农场(差分约束)

    3436: 小K的农场 题目:传送门 题解: 查分基础: t==1  a>=b+c t==2  b>=a-c t==3  a>=b+0 b>=a+0 跑最长路一A 代码: #i ...

  9. ios问题bug收录——1

     **[2713:59682] *** Assertion failure in -[MBProgressHUD show:], /Users/lu/Desktop/****/Pods/MBProgr ...

  10. Android开发中,9-patch (九宫格)图片作为背景带来的问题

    9-patch 为了解决不同分屏下的图片适应性,对图片做了padding,而在android中,要给一个控件设置背景图,最终是要调用 setBackgroundDrawable  方法来设置图片资源, ...