Fork me on GitHub

Swift语言学习---------初级

一.声明变量和常量

示例代码:

//1.定义常量(let)和变量(var)
let myGender = "男🐲🐵🍑"
print(myGender)
//myGender = "nv" //因为myGender是常量

//2.定义变量
var carName = "保时捷"
carName = "宾利"

//定义变量年龄
var age = 20

//swift 定义的变量或者常量的时候,需要标记出变量或者常量的类型,如果不标识,会自动根据初始值自动推断
let name = "jack"  //会自动推断为string, 有后面到的值来决定name的类型
let name1:String = "1jack" //由前面的类型string,决定后面的赋什么的值,即后面的值要与string一致


//注意如果用let修饰必须赋初值,如果用var修饰可以不赋初值
//let age1:Int = 3
var age1:Int?  //"?"问号表示当前为可选类型  表示前面的初值可以为空
print(age1)

//定义一个字符类型的变量
var char:Character = "A" //此时char就是一个字符,切记其值也用""的,只能用一个字符

//定义一个Bool类型到的变量(值只有ture和flase)
var flag:Bool = true

/**********字符串String************/
//创建一个空字符串变量
var str_empty = ""


//通过字符串对象的isEmpty方法判断是否为空
if str_empty.isEmpty{
  //if 后面的判断条件的返回值必须是Bool类型
     print("str_empty is empty")

}

//(3).字符串的拼接
var str_url = "http:\\\\"   //转义字符'\\'会转义为一个'\'
var str = "www.lanou3g.com"
let urlString  = str_url + str
print(urlString)
print("蓝鸥官网:\(urlString)\n")   //插入式取值 \(变量名)

//(4).获取字符串的长度
var str2 = "abc"
//print(str2.characters.count)

//(5).字符串差值 (不能一是转化,不能自动转化类型,必须手动转化)
let mul = 4
let content = "\(mul)*2.5 = \(Float(mul)*2.5)"
print(content)

//(6).字符串的比较
let str3 = "xiaoxiao"
let str4 = "lanou"
if str3 == str4 {

   print("相等")
}  else {
   print("不相等")

}

 

二.数组和字典

 示例代码:

//数组(Array)**********************************************
//swift中数组里面存储的所有数据 都必须是同一类型的
//定义一个数组变量
var nameArray = ["张三","李四","王五"]

var nameArray1:Array<String> = ["张三","李四","王五"]

//创建一个字符串型空数组
let array = Array<String>()


//创建一个整型空数组
var int_arr = [Int]()

//访问数组中某个元素
print(nameArray[0])
print("第二个元素\(nameArray[1])")
print(nameArray[1])


//向数组中添加元素
var int_arr1 = [Int]()
int_arr1.append(10)
int_arr1.append(20)
print(int_arr1)


//在数组中某个位置插入元素
int_arr1.insert(15, atIndex: 1)
print(int_arr1)


//删除数组中某个位置上的元素
int_arr1.removeAtIndex(2)

//移除数组中的所有元素
int_arr1.removeAll()
print(int_arr1)


//字(字典是无序的)*************************************************
//1.字典 (键值对)  定义一个字典变量
var dictionary : Dictionary<Int, Int> = [20 : 10]
var dictionary1 : Dictionary<String, Int> = ["a": 10,"b":20]
print(dictionary1)

//定义一个可变空字典变量
var dictionary2:Dictionary<String,Int> = [:]
//定义一个可变空字典变量
var dictionary3 = Dictionary<String,Int>()

//在字典中添加一个键值对
dictionary1["c"] = 30
print(dictionary1)

//在字典中修改一个键值对的值
dictionary1["a"] = 40
print(dictionary1)
print(dictionary1["a"])

//删除字典中的一个键值对
dictionary1.removeValueForKey("a")
print(dictionary1)

 

三.元组

示例代码:

//经常用,熟练掌握
//元组********************************************
//元组是Swift里面独有的一种数据格式(对比OC)。是 一个可以返回多个值的格式。在Swift面声明的时候使用 ()声明。
//元组中可以存放多种类型的值,而且存放的个数可以多个
//定义一个元组变量
let status = ("蓝鸥1班",["ios,Android,Html5"])
let statu : (classroom:String,lesson:Array) = ("蓝鸥1班",["ios,Android,Html5"])
print(statu)

//访问元组中某个元素
//1.元素较少时,通过下标
print(statu.1)

//2.元素过多,使用标记名称取值
print(statu.classroom)

 

四.循环结构和分支结构

示例代码:

//for循环 *******************************************
//第一种形式
for var i = 1; i<10; i++ {


   print(i)

}

//第二种形式
for i in 1..<10 {



   print(i)

}

//第三种形式
for a  in 1...10 {

   print(a)


}

//while循环******************************************
var number = 5
while number > 1 {

    number--
    print(number)


}

//repaet ...while
repeat {
   print("hello")
}  while false

//使用for循环遍历数组
var animaelArray = ["dog","cat","tiger","pig"]
for b in animaelArray{

  print(b)

}

//for ...in...遍历字典
let animals2 = ["dog":"🐶","cat":"🐱"]
for (key,value)in animals2{

  print("key = \(key) value:\(value)")

}


//if分支结构
//if .....else...可以省略小括号
let cool = false
if cool == true {

  
  print("好酷!")

} else {
 
   print("一点也不酷")
}


//switch 分支结构
//特点一:   switch中实现贯穿,使用关键字fallthrough
let bajieage = 20
switch bajieage {
case 0:
    print("0")
    fallthrough
case 10:
    print("10")
    fallthrough
default:
    print("other")

}

//特点二:case后面可以是一个范围
switch bajieage{
case 0..<10:
  print("范围在0..<10")
case 10...100:
    print("范围在10...100")
default:
    print("other")
}


//特点三:case后面可以定义一个变量 关键字:where 并且可以声明变量获取值  where后面定义的是定义这个变量需要满足的条件

switch bajieage {
case var i where bajieage > 0 && bajieage < 10:
   i = 20
    print(i)
default:
    print("other")

}


//特点四:switch ...case...可以匹配一个元组
//关键字是元组,同样可以在分⽀支中进⾏行判断 
//"_",代表忽略

//定义一个元组
let point = (10,10)
switch point {
case (_,10):   //"_"代表忽略
    print("case1")
case (10,0):
        print("case2")
case (10,10):
    print("case3")
default:
    print("case4")

}

 

五.枚举

示例代码:

//枚举(enum)********************************************
//原始值是int类型
enum direction: Int {
  case East = 0
    case South
    case Weast
    case North

}

let d1 = direction.East
print(d1.rawValue)

//原始类型是string类型
enum Season:String {
  case Spring = "春天"
    case Summer = "夏天"


}

print(Season.Summer.rawValue)



//定义一个枚举类型的变量
//使用原始值来创建变量
//通过原始值为2 获取原始值为2的枚举成员
//dir 类型为direction? 值为direction.north
let dir = direction(rawValue: 1)  //表示取的是原始值为1的那个元素
dir?.rawValue   //可选类型
 print(dir)
print(direction.South.rawValue)

 

六.函数

示例代码:

//函数**********************************************
//表示函数的关键字 func   (函数变量)
//函数的类型分为4种

//1.无返回值 无参数
func function1() -> Void{

  print("无返回值无参")

}
function1()

//2.无返回值有参  此时str为内部参数名,仅供函数内部使用
func function2(name str:String) ->Void {
//name为外部参数名  用来给用户进行提示
//注意:内部参数名必须要有
   print(str)

}
//function2("lanou")
function2(name: "lanou")


//3.有返回值无参
func function3() -> String{

  return "hallo"

}
let string =  function3()
print(string)

//4.有返回值有参
func function4(a:Int ,b:Int) ->Int{

   return a+b

}

let result =  function4(3, b: 4)
print(result)




//5.函数的返回值为元组类型
//利用元组实现函数返回多个值
//"_"忽略外部参数名
func sumMulMinuse(a:Int,_ b:Int) ->(Int,Int,Int){


  return (a+b,a*b,a-b)

}
//调用函数
let res = sumMulMinuse(5, 2)
print(res)


//函数嵌套
func test1(){
    func test2(){
        func test3(){
        
            print("test3")
        
        }
        test3()
        print("test2")
    }
    test2()
    print("test1")
}
//调用
test1()

 

 
 
posted @ 2015-11-02 22:56  DengHuiCheng  阅读(148)  评论(0编辑  收藏  举报