swift的数据类型、运算符和元组的简单使用
2016-07-31 10:32
190 查看
//: Playground - noun: a place where people can play
import UIKit
var str = "Hello, playground"
var str1 = "123"
//用加号做字符串的拼接
var des = str +
str1
let hand = 2;
//var string = "我今年\(hand)岁,有\(hand)手"
var int12 = String(hand)
//swift提供了2个打印输出函数
//println():输出内容后会自动换行
//print:对比println,少了个自动换行的功能
println("learn Swift")
let name =
"swift 和OC + iOS\n"
println(name)
let age = 10
let
我 = "mxj"
var name1 = "name" +
我
//command + Ctrol + space
弹出emoji键盘
let
=
"哈哈"
//swift严格要求变量在使用之前必须进行初始化
//数据类型 Int/Float/Double/Bool/Character/String/Array/Dictionary/元组类型(Tuple)/可选类型(Optional),可以看出,数据类型的首字母都是大写的
//那么如何指定变量、常量的数据类型
//在常量、变量名后面加冒号和类型名称,如 let age: Int=10,但是在一般情况下没有必要明确指定变量或常量的类型,因为swift已经给你处理好了
//如: var a:Int,是错误的,swift并不会为变量赋初值
// var a:Int = 20是可以的
//UInt8.min
//UInt8.max -128~127
//Int16.min 0~255
//Int16.max
//整数的4中表示形式
//十进制
let i10 = 10
//二进制
以0b为前缀
let i = 0b1010
//八进制 0o为前缀
let i1 = 0o12
//十六进制 0x前缀
let i2 = 0x0A
//浮点数
/*
Double:64位浮点数,当浮点值非常大或需要非常精确时使用此类型
Float:32为浮点数,当浮点值不需要使用Double的时候使用此类型
*/
let fff = 3.14
let ddd = 3.56
//注意如果没有明确类型,默认为Double类型
//浮点数可以用十进制和十六进制来表示
//十进制
//let d1 = 12.5
//let d2 = 0.125e2 0.125*10*10
let d3 = 0xc.8p0
//12+ 8/16 = 12.5
//数字格式
let money = 001999
//增加额外的下划线
let money1 = 100_0000
//类型转换,两个类型不同的数值,是不能进行运算的
//类型的别名
//可以使用typedef作用类似于
typealias myInt =
Int
//运算符
/*
Swift所支持的部分运算符有
赋值运算符:=
复合赋值运算符:+=、-=
算术运算符:+、-、*、/
求余运算符:%
自增、自减运算符:++、--
比较运算符:==、!=、>、<、>=、<=
逻辑运算符:&&、||、!
三目运算符:? :
范围运算符:..<、...
溢出运算符:&+、&-、&*、&/、&%
swift中的赋值运算符:
1、 1对1赋值
var a = 5
2、N对N赋值,成为元组
let (a,b) = (1,2) --->a=1,b=2
和C/OC中不同的是,swift没有返回值,从而保证数据安全
在OC中
int a=1,b=5;
if(a=b){
...
}
在swift中会报错
求余运算符 %
9%4 = 1, -9%4 = -1,9% -4 = 1,-9 %-4 = -1
求余结果的正负跟%左边数值的正负一致,另外,swift还支持浮点数的求余运算
8%2.5 = 0.5
bool类型,也成为逻辑类型,就2中值,true:真,false:假
在C语言中,0为假,非0即真;而在swift中没有这种概念
if(10){
...
}
这在swift中是错误的
if(true){
...
}
比较运算符、逻辑运算符返回的是bool值,取值为2种可能
true:真,6>5,
false:假,6<5
三目运算符的条件必须是bool类型的值
错误写法:
let a= 10 ; let c=a?100:200
正确写法:
let c=a !=0?100:200
let c=false?100:200
重点:*******************************************
范围运算符,表示一个范围,有2种类型的范围运算符
1、闭合范围运算符:a...b,表示[a,b]
2、半闭合范围运算符:a..<b,表示[a,b)
溢出运算符
每种数据类型都有自己的取值范围,默认情况下,一旦赋值超出了一个超出范围的数值,会产生编译或运行时的错误
比如
下面的写法是错误的
let x = UInt8.max
let y = x +1
第二行代码会在运行时报错
swift为整型计算提供了5个&开头的溢出运算符,能对超出范围的数值进行灵活处理
溢出加法&+、&-、&*、&/、&%
let x = UInt8.max 255
let y = x &+1
let m = UInt8.min
let z = x &-1
第一行代码过后:x的值为255(最大值)
第二行的代码过后:y = 0
第四行的代码过后:z = 255
默认情况下,一个数除以0,或者对0求余数,编译器会报错
但是如果使用溢出运算符,就不会报错
let x = 10
let y = x&/0
let z = x&%0
y和z的值始终是0
元组类型 (Swift的特有类型)
N个任意类型的数据组成的,N>=0
组成元组类型的数据可以成为“元素”
let position = (x:10.5,y:20)
position有2个元素,x、y是元素的名称
let person = (name:"jack")
person只有name一个元素
let data = (),空元组
元素的访问
var point = (x:10,y:20)
point.x = 30 -->(x:30,y:20)
point.y
point.0 = 20 -->(x:20,y:20)
point.1
注意,如果用let来定义一个元组,那么就是常量,就无法修改它的元素
使用细节:可以省略元素的名称
let position = (10,20)
let position = (20,"jack")
比如
var point = (10,20)
point.0 = "23243253",会报错
var p = (20,"jack")
p.1 = "jackd"
可以明确指定元素的类型
var person :(Int,String) = (20,"sdfsfs")
注意在明确指定元素类型的情况下不能加上元素的名称
因此,下面的语句是错误的
var person :(Int,String) = (age:20,name:"rose")
元组的使用细节:
1、可以用多个变量接收元组数据
var (x,y) = (10,20)
var point = (x,y) //point由2个元素组成,分别是10,20
2、可以将元素分别赋值个多个变量
var point = (10,20)
var (x,y) = point //x是10,y是20
3、可用下划线_忽略某个元素的值,取出其他元素的值
var person = (20,"Jack")
var (_,name) = person
//name的内容是"Jack",person中的元素20被忽略
*/
import UIKit
var str = "Hello, playground"
var str1 = "123"
//用加号做字符串的拼接
var des = str +
str1
let hand = 2;
//var string = "我今年\(hand)岁,有\(hand)手"
var int12 = String(hand)
//swift提供了2个打印输出函数
//println():输出内容后会自动换行
//print:对比println,少了个自动换行的功能
println("learn Swift")
let name =
"swift 和OC + iOS\n"
println(name)
let age = 10
let
我 = "mxj"
var name1 = "name" +
我
//command + Ctrol + space
弹出emoji键盘
let
=
"哈哈"
//swift严格要求变量在使用之前必须进行初始化
//数据类型 Int/Float/Double/Bool/Character/String/Array/Dictionary/元组类型(Tuple)/可选类型(Optional),可以看出,数据类型的首字母都是大写的
//那么如何指定变量、常量的数据类型
//在常量、变量名后面加冒号和类型名称,如 let age: Int=10,但是在一般情况下没有必要明确指定变量或常量的类型,因为swift已经给你处理好了
//如: var a:Int,是错误的,swift并不会为变量赋初值
// var a:Int = 20是可以的
//UInt8.min
//UInt8.max -128~127
//Int16.min 0~255
//Int16.max
//整数的4中表示形式
//十进制
let i10 = 10
//二进制
以0b为前缀
let i = 0b1010
//八进制 0o为前缀
let i1 = 0o12
//十六进制 0x前缀
let i2 = 0x0A
//浮点数
/*
Double:64位浮点数,当浮点值非常大或需要非常精确时使用此类型
Float:32为浮点数,当浮点值不需要使用Double的时候使用此类型
*/
let fff = 3.14
let ddd = 3.56
//注意如果没有明确类型,默认为Double类型
//浮点数可以用十进制和十六进制来表示
//十进制
//let d1 = 12.5
//let d2 = 0.125e2 0.125*10*10
let d3 = 0xc.8p0
//12+ 8/16 = 12.5
//数字格式
let money = 001999
//增加额外的下划线
let money1 = 100_0000
//类型转换,两个类型不同的数值,是不能进行运算的
//类型的别名
//可以使用typedef作用类似于
typealias myInt =
Int
//运算符
/*
Swift所支持的部分运算符有
赋值运算符:=
复合赋值运算符:+=、-=
算术运算符:+、-、*、/
求余运算符:%
自增、自减运算符:++、--
比较运算符:==、!=、>、<、>=、<=
逻辑运算符:&&、||、!
三目运算符:? :
范围运算符:..<、...
溢出运算符:&+、&-、&*、&/、&%
swift中的赋值运算符:
1、 1对1赋值
var a = 5
2、N对N赋值,成为元组
let (a,b) = (1,2) --->a=1,b=2
和C/OC中不同的是,swift没有返回值,从而保证数据安全
在OC中
int a=1,b=5;
if(a=b){
...
}
在swift中会报错
求余运算符 %
9%4 = 1, -9%4 = -1,9% -4 = 1,-9 %-4 = -1
求余结果的正负跟%左边数值的正负一致,另外,swift还支持浮点数的求余运算
8%2.5 = 0.5
bool类型,也成为逻辑类型,就2中值,true:真,false:假
在C语言中,0为假,非0即真;而在swift中没有这种概念
if(10){
...
}
这在swift中是错误的
if(true){
...
}
比较运算符、逻辑运算符返回的是bool值,取值为2种可能
true:真,6>5,
false:假,6<5
三目运算符的条件必须是bool类型的值
错误写法:
let a= 10 ; let c=a?100:200
正确写法:
let c=a !=0?100:200
let c=false?100:200
重点:*******************************************
范围运算符,表示一个范围,有2种类型的范围运算符
1、闭合范围运算符:a...b,表示[a,b]
2、半闭合范围运算符:a..<b,表示[a,b)
溢出运算符
每种数据类型都有自己的取值范围,默认情况下,一旦赋值超出了一个超出范围的数值,会产生编译或运行时的错误
比如
下面的写法是错误的
let x = UInt8.max
let y = x +1
第二行代码会在运行时报错
swift为整型计算提供了5个&开头的溢出运算符,能对超出范围的数值进行灵活处理
溢出加法&+、&-、&*、&/、&%
let x = UInt8.max 255
let y = x &+1
let m = UInt8.min
let z = x &-1
第一行代码过后:x的值为255(最大值)
第二行的代码过后:y = 0
第四行的代码过后:z = 255
默认情况下,一个数除以0,或者对0求余数,编译器会报错
但是如果使用溢出运算符,就不会报错
let x = 10
let y = x&/0
let z = x&%0
y和z的值始终是0
元组类型 (Swift的特有类型)
N个任意类型的数据组成的,N>=0
组成元组类型的数据可以成为“元素”
let position = (x:10.5,y:20)
position有2个元素,x、y是元素的名称
let person = (name:"jack")
person只有name一个元素
let data = (),空元组
元素的访问
var point = (x:10,y:20)
point.x = 30 -->(x:30,y:20)
point.y
point.0 = 20 -->(x:20,y:20)
point.1
注意,如果用let来定义一个元组,那么就是常量,就无法修改它的元素
使用细节:可以省略元素的名称
let position = (10,20)
let position = (20,"jack")
比如
var point = (10,20)
point.0 = "23243253",会报错
var p = (20,"jack")
p.1 = "jackd"
可以明确指定元素的类型
var person :(Int,String) = (20,"sdfsfs")
注意在明确指定元素类型的情况下不能加上元素的名称
因此,下面的语句是错误的
var person :(Int,String) = (age:20,name:"rose")
元组的使用细节:
1、可以用多个变量接收元组数据
var (x,y) = (10,20)
var point = (x,y) //point由2个元素组成,分别是10,20
2、可以将元素分别赋值个多个变量
var point = (10,20)
var (x,y) = point //x是10,y是20
3、可用下划线_忽略某个元素的值,取出其他元素的值
var person = (20,"Jack")
var (_,name) = person
//name的内容是"Jack",person中的元素20被忽略
*/
相关文章推荐
- swift基本知识、数据类型、运算符、元组类型
- swift 初级 字符串,数据类型,元组等简单语法
- GROUP BY 不能比较或排序 text、ntext 和 image 数据类型,除非使用 IS NULL 或 LIKE 运算符。
- ASP.NET AJAX中 复杂数据类型使用简单实例
- PreloadDataCache支持预取的数据缓存,使用简单,支持多种缓存算法,支持不同网络类型,扩展性强
- Swift基本使用-数据类型(一)
- 不能比较或排序 text、ntext 和 image 数据类型,除非使用 IS NULL 或 LIKE 运算符。
- Swift基础1_简单数据类型和循环
- 使用简单的json.dumps方法对简单数据类型进行编码
- 【Swift】学习笔记(一)——初识 基础数据类型,代码风格,元组,断言
- C/C++基本数据类型所占字节数以及sizeof运算符的使用
- PreloadDataCache支持预取的数据缓存,使用简单,支持多种缓存算法,支持不同网络类型,扩展性强
- C# List数据类型的简单使用
- 第3篇:swift语言笔记:基本语法/运算符/数据类型/字符串等关键点
- 使用宏模拟C++模版完成简单数据类型的交换
- C# List数据类型的简单使用
- Swift 学习笔记一 基本数据类型和简单语句语法
- sql distinct 不能比较或排序 text、ntext 和 image 数据类型,除非使用 IS NULL 或 LIKE 运算符
- MongoDB在Windows下安装、Shell客户端的使用、Bson扩充的数据类型、MongoVUE可视化工具安装和简单使用、Robomongo可视化工具(2)
- 【Java/Android性能优 4】PreloadDataCache支持预取的数据缓存,使用简单,支持多种缓存算法,支持不同网络类型,扩展性强