swift的数据类型、运算符和元组的简单使用
来源:互联网 发布:数据库应用系统饭店 编辑:程序博客网 时间:2024/06/03 14:01
//: 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被忽略
*/
- swift的数据类型、运算符和元组的简单使用
- swift基本知识、数据类型、运算符、元组类型
- swift 元组的使用
- [绍棠_swift] swift的简单学习(字符串、4元组、类型转换及运算)
- Swift基本运算符和简单的逻辑运算符
- 6、Swift元组的使用
- Swift元组的创建--使用
- swift元组的理解和讲解
- swift 变量、元组、运算符
- swift 初级 字符串,数据类型,元组等简单语法
- swift中 ?? 运算符的使用, 类似于 ?: 运算符
- Swift 的元组介绍
- Swift - 元组的用法
- 简单数据类型和运算
- Swift的算术运算符和赋值运算符
- Java的数据类型和运算符
- java的数据类型和运算符
- Java的数据类型和常用运算符
- 脉搏测量 心电波形 心率
- mysql模糊查询在jdbc中查不到内容,?两侧没有加空格
- DP-Common Subsequence
- HDU 5780 (欧拉函数)
- Surrounded Regions
- swift的数据类型、运算符和元组的简单使用
- HDU 4544 湫湫系列故事——消灭兔子 (贪心+优先队列)
- CloudVisor译稿
- 如何安装Hadoop 2.6.0完全分布式?
- HDU.5120 Intersection
- Linux的简单介绍
- 阻塞和非阻塞等待
- poj 2274 线段树+堆(优先队列)
- Java归并排序