一、(1.2) 整数 浮点数 数字格式 类型转换 布尔类型
2019-12-30 本文已影响0人
爱玩游戏的iOS菜鸟
整数
- 十进制数,没有前缀
- 二进制数,前缀为0b
- 八进制数,前缀为0o
- 十六进制数字,前缀为0x
let tenInt = 17
let eightInt = 0o21
let twoInt = 0b10001
let sixTeenInt = 0x11
print(tenInt,eightInt,twoInt,sixTeenInt)//输出:17 17 17 17\n
print打印出来的值 均为十进制
浮点数
- 浮点文字可以是十进制(没有前缀)或十六进制(带有0x前缀)。
- 十进制浮点数也可以有一个可选的指数,用大写或小写e表示; 十六进制浮点数必须有一个指数,用大写或小写p表示。
let floatValue :Float = 3.14
let doubleValue = 3.1415926 //默认为Double
let seienceTen :Double = 3.14e4
//十六进制数 必须0x开头 且需要使用p代表指数部分 基数乘以2^n
let seienceSixTeen = 0x3.a4p2// 0x3.a4 x 2^2
print(floatValue, doubleValue , seienceTen ,seienceSixTeen, separator: "\t", terminator: "\n")
数字文字(易读格式)
- 数字文字可以包含额外的格式以增加可读性。
- 整数和浮点数都可以用额外的零填充,并且可以包含下划线以帮助提高可读性。
- 都不会影响文字的基础值
let value = 0000356
let value2 = 000_0356
let value3 = 000_0356.0001_01
let value4 = 000_0356.0001_0001_01
print(value, value2, value3 , value4, separator: "\t", terminator: "\n")
类型转换
//整形之间的转换
let value1 :UInt16 = 0xe
let value2 :UInt8 = 7
let value3 = value1 + UInt16(value2)
print(value3)//输出: 21\n 转换不同进制值计算 结果均为10进制
//整形与浮点型的转换
let value4 = 3
let value5 = 3.14
let value6 = Double(value4) + value5
//let value6 = value4 + value5 字面量可以直接相加 但是两个不同类型的常/变量不可直接相加
//value5为Double类型
//Int8 - Int16 - Int32 - Int64 - Float - Double 尽量以最大的为标准 反过来可能会导致精度丢失
//精度丢失
let integerPi = value4 + Int(valu5)
布尔类型,Bool
- 布尔值被称为逻辑,因为它们只能是true或false
var isGame = true
var isShow = false
//true不能直接转换为String 但是可以插到字符串中
var str:String = "\(isGame)是真的"
元组 Tuples
- 元组将多个值组为单个复合值。 元组中的值可以是任何类型,并且不必彼此具有相同的类型。
- 元组在用作函数返回值特别有用
var game = (1,2.21,"英雄联盟")
var score:(Int,Float,String,Double) = (98, 95.5, "及格", 20.4)
//元组类型的成员可以再次是元组
var test :(Int,(Int,String)) = (20,(15,"诺克萨斯"))
//使用元组类型定义元祖变量 在元组中命名各个元素
var hero : (demacia : String, nocxus : String, flerzord : String)
//必须按照顺序为每个元素指定值
hero = ("盖伦", "德莱厄斯", "泰达米尔")
//通过key为元组的元组指定值 顺序可以调换
hero = (demacia:"盖伦", flerzord:"泰达米尔", nocxus:"德莱厄斯")
//通过元素名称类访问这些元素的值
let garen = hero.demacia
print(garen)
//只需要部分的值 可以忽略其他元组中的元素(_)
let (javenIV,_,ashe) = hero
print(javenIV,ashe)
//使用一些元组的值,也可以使用索引下标
print(hero.1)
print(test.1.0)
Swift学习日记1.2