您的位置:首页 > 移动开发 > Swift

Swift_基本数据类型

2016-01-27 12:19 357 查看
//
//  main.swift
//  1Switf_基本数据类型
//
//  Created by LZXuan on 16-1-26.
//  Copyright (c) 2015年 LZXuan. All rights reserved.
//

//1.swift 没有main函数
//跟脚本语言很像

//从上自下一次执行 语句

import Foundation

//定义函数 无参无返回值
func test1() {
//(c c++ java c#  OC等等 的一个产物)
//
//打印输出函数
//带换行的打印
print("Hello, Switf!")

//swift 语句 不需要加';'
//下面的打印函数 不带换行
print("hello,swift", terminator: "")
}
//执行函数中的代码 那么需要调用函数
//test1()

//2.数据类型
//2.1定义常量
func test2() {
//定义一个常量  常量必须要初始化
//定义常量格式  ->  let 常量名:类型 = 值

//定义一个整型常量
let age:Int = 24
//定义一个浮点数
let f:Double = 3.14
//定义字符类型
let c:Character = "x"

//打印输出
print(age)
print(f)
print(c)
//可以这样来进行格式化输出一个常量或者变量的值
print("age = \(age)")//类似于C语言的格式化字符串
print("f = \(f)")
print("c = \(c)")

//swift 具有类型推断的功能 可以根据后面的值推断出 常量或者变量的类型
let a = 100//a 就是Int 类型

let 女汉子 = "女汉子"
print(女汉子)
}
//test2()

//2.2 变量
func test3() {

//    var 变量名:类型

//定义一个整型变量 可以初始化也可以不初始化 一般都要初始化

var a:Int

let b:Int16 = 12
print(b)

//swift 变量名 实际上 是按照unicode
//变量名/常量名可以是汉字

let 汉 = 123

print("汉:\(汉)")

}
//test3()
//3.溢出
func test4() {
//给a 一个UInt32 的最大值
var a:UInt32 = UInt32.max;

//swift 变量发生溢出这里会报错
//var b = UInt32.max+1

}
//4.强制类型转换
func test5() {
let a:Double = 1.23
let b:Int = 2

//swift不支持隐式转换
//var d:Double  = a+b
//var c:Double = b
//不同的数据类型之间 不能直接运算, 如果要运算必须要强转

//类型() 强制类型转换

//把变量b的值得类型 临时强制转换为Double
let d:Double = a+Double(b)

print("d= \(d)")
}
//test5()

//5.布尔值
//swift 引入了真正的布尔 true  flase 和c++ 类似
//if 表达式中 必须是布尔值 或者 表达式的值是布尔
func test6() {
//布尔值 只有true 和flase 两个值
let b:Bool = true

print(b)

//可以用于if结构

if(true) {//if  后面的表达式只能是布尔值
print("if结构")
}
if(b) {//if  后面的表达式只能是布尔值
print("if结构")
}
let c:Int = 3
if(c == 3) {//if  后面的表达式只能是布尔值
print("if结构")
}
/* 表达式的值必须是布尔值
if(c = 5) {//if  后面的表达式只能是布尔值
println("if结构")
}*/

}
//test6()

//6.元组
//元组 (30,”xiaohong”) 多个相同数据类型或者不同的数据类型 组合在一起  这就是一个元组
func test7() {
//元组类型 就是(类型1,类型2,....)
//元组不需要定义直接使用
//第一种形式 (类型推断) 元组常量 stu1   ->(String,Int,Double)
let stu1 = ("xiaohong",24,99.1)
print(stu1)

//获取元组中的元素
let name = stu1.0
let age = stu1.1
let score = stu1.2
//索引 是从0开始 访问
print("name:\(name) age:\(age) score:\(score)")

//定义第二种形式的元组常量
//定义 元素的类型  要按照 String Double Int 顺序进行赋值
let stu2:(String,Double,Int) = ("xiaohuang",3.14,24)

//第三种形式定义元素  赋值的时候加标签
let stu3 = (name:"xiaohuang",score:3.14,age:24)

//通过标签访问元素
print("\(stu3.name)-\(stu3.score)-\(stu3.age)")
}
//test7()

//8.可选值类型
/*
可选值  swift 特有
optionals  有一个值 或者没有值  像布尔值

//两种状态  有值  没有值/nil
*/
func test8() {
//定义一个可选值
//?必须要紧跟类型  和 类型之间不能 有空格
//var op1:Int ? = 100 //错误

//有值
let op1:Int? = 100

//没有值
let op2:Int? = nil
//或者
//    var op2:Int?

print("op1:\(op1)")
print("op2:\(op2)")

//要想得到可选值变量中的值 那么需要进行解包(强制解析)
//可选值变量+!

let num:Int = op1!//解包 获取可选值 op1中的值
//解包时必须要有值 否则会崩溃
print("num = \(num)")

}
//test8()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: