码迷,mamicode.com
首页 > 编程语言 > 详细

Swift 入门

时间:2016-04-15 18:25:05      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

import Foundation


//&&&&&&&&&&&&&&&&& Swift里面以空格表示结束.&&&&&&&&&&&&&&&&&&

/*
// 这种定义方式定义后,后面的值只能是字符串.
let name : String = "王亮";
// 隐士类型推断, 由初始值来推断常量的类型
let gender = "男";
let 王朗 = "缺德";
let ?? = "笑";
// 使用let定义的常量的值永远不能改变


//定义变量
var age = 100
var height : Int = 140 //Swift在定义一个变量或者常量的时候,必须要有确定的类型.

let a : Int = 10
let b : String = "Hello"
let c : Character = "A"
let flag : Bool = false
let d : Bool = true;


//注意:值永远不会被隐士转换为其他类型 , 如果需要转换.请显示转换;
//不可以将两个不一样类型的变量或常量直接进行四则运算.  需要写成 :变量 (常量) A + 目标类型 B

let name1 = "Lanou‘s age is "
let age1 = 3;
let words = name1 +  String(age1)
print(words)
// 运算符重载. 加法运算的时候会自动拼接到一起.
*/

//let string = "好的"
////创建一个值为空的字符串
//let string1 = ""
//let string2 = String()
//print(string1)


//var var_str = "Hello lanou"
//var empty_str1 = ""
//var empty_sty2 = String()
//
//if empty_str1.isEmpty
//{
//print("empty_str1 is empty")
//}

//字符串链接
//创建字符串变量
//var var_str = "http://"
//var_str += "www.lanou3g.com"
//print(var_str)
//
////创建字符串常量 . 注意常量不能被修改
//let con_str = "Hello"
////获取字符串的长度
//let length = con_str.characters.count
//print(length)

//字符串插值
//let mul = 3.0
//let content = "\(mul)*2.5 = \(mul*2.5)"
//print(content)

//字符串比较
//let name3 = "xiaohao"
//let name2 = "lanou3g"
//if name3 == name2
//{
//print("\(name3)equals\(name2)")
//}
//else{
//print("not equal")
//}
//
//// 练习一
// 创建两个String类型的变量, 初始值为"a" "b", 并交换两个变量的值.
//var smile = "a"
//var cay = "b"
//var ww = ""
//
//ww = smile
//smile = cay
//cay = ww
//
//print(ww)
//print(smile)
//print(cay)


// %%%%%%%%%%%%%%%%数组%%%%%%%%%%%%%%%%

//let array = ["张三", "李四", "王五"];
//print("赵六\(array)")
//
//// 如果数组里面保存的数据不是同一类型的, 那么数组的类型是NSObject的.
//var array1 = ["王德亮", "大波", "鹏辉", 401]
//print("array1")
//// 提前指定数组的数据类型.
//var array2 : [Int] = [1, 2, 3]
//
//// Swift中可以通过直接访问数组下标 改变数据的值
//array1[3] = "付东"
//
//// 向数组中追加一个元素.
//array1.append(401)
//// 使用运算符加载 向数组中追加一个元素.
//array1 += [502]
//// 插入一条数据
//array1.insert("小鹏辉", atIndex: 2)
//
//let array5 = ["1", 2]
//// 想数组中插入一个集合类型的数据 (这个集合要和数组是同一类型)
//array1.insertContentsOf(array5, at: 2)
// 删除全部
//array1.removeAll()

// 从头开始删两个
//array1.removeFirst(2)
// 全删 但是保留内存
//array1.removeAll(keepCapacity: true);
// 删除最后一个元素
//array1.removeLast()
// 删除某一位置的元素
//array1.removeAtIndex(1)
// 从几删到几
//let range : Range = Range.init(start: 1, end: 4)
//array1.removeRange(range)

//print(array1)


//%%%%%%%%%%%%%%%%%%%%字典%%%%%%%%%%%%%%%%%%%%%%
// 定义一个字典
//let dictionary = ["a" : 1, "b" : 2]
//print(dictionary)
//// 如果字典里的key的类型不同 , 那么key的类型就是NSObject
//let dictionary1 = ["a" : 1, 2 : "b"]
//print(dictionary1)
//// 提前指定key和value的类型  创建一个字典
//let dictionary2 : [Int : String] = [1 : "a", 2 : "b"]
//print(dictionary2)
//// 可以直接通过key值访问字典中的元素
//print(dictionary2[1])
//
//// 可变
//
//var dictionary3 = ["小萨摩" : "大花猫", 114 : 111]
//// 修改
//dictionary3["小萨摩"] = "大波"
//// 不存在的话 , 就会插入
//dictionary3["蛋蛋"] = "建国"
//// 让某一个key值为Nil 表示删除掉这个key和对应的value
//dictionary3[114] = nil

//print(dictionary3)


// 交换数组中下标的值.
//var array = [NSObject]()
//array += ["胡波"]
//array.append("王德亮")
//print(array)
//
//let string = array[0]
//array[0] = array[1]
//array[1] = string
//print(array)


//@@@@@@@@@@@@@@@@@@@@@@@@ 元祖 @@@@@@@@@@@@@@@@@@@@@@@@

//let type = ("王的来", ["联通", "污唐"])
//print(type)
//print(type.0)//通过下标
//
//let type1 : (String, Int) = ("赵四", 100)
//print(type1)
//// 通过赋值来取值
//let type2 : (name : String, age : Int) = type1
//print(type2.age)


// 练习
//
//var dictionary = ["number" : 12, "name" : "张飞", "gender" : "男", "age" : 24]
//var stuarray = [dictionary]
//
//var type = (dictionary)
//var type1 = (stuarray)
//print(type)
//print(type1)


//#################循环结构  分支结构################
//for (var i = 0; i < 100; i++){
//print(i)
//}


//1...10闭区间 包括10.  1..<10 半开区间,不包括10
//for i in 1...10{
//print(i)
//}

//var array = ["dog", "??", "cat"]
//for a in array
//{
//print(a)
//}

//var dictionary = ["wangwang" : "dog", "doudou" : "cat"]
//for (b, c) in dictionary
//{
//print(b, c)
//}

//var number = 0
//while number < 10{
//   print(number)
//   number++
//}


//var number1 = 0
//repeat{
//number1 += 1
//print(number1)
//    
//}while number1 < 10
//


//if 1 == 1
//{
//print(1)
//}

// 可选值 , 在变量的类型后面加一个问号 , 表示这个变量为可选类型, 可以被置为nil;
//var a : String? = nil;
//var string : String? = "asda"
//if (string != nil)
//{
//}

//
//let  age = 3
//// Swift 里面 每一个case里自带一个break
//// 如果想要贯穿的话, 可以用fallturough关键字..
//switch age{
//case 1:
//    print("age = 1")
//case 2:
//    print("age = 2")
//case 3:
//    print("age = 3")
//    fallthrough
//case 4:
//    print("age = 4")
//default:
//    print("age = 5")
//    
//}
//// 可以根据区间获取值
//
//switch age{
//case 0...10:
//    print("粗跟博")
//case 11...20:
//    print("大屁股")
//case 21...30:
//    print("mengwang")
//default:
//    print("老变态")
//}
//
//
//var a = 0
//// switch可以在case里面添加where条件判断.
//switch a {
//case var value where a < 10 && a > 0:
//    value++
//print(value)
//default:
//    print("error")
//}


//let point = (10, 100)
//// 对一个元祖做判断 "_"表示忽略这个位置的元素
//switch point {
//case (10, 10):
//    print("第一象限")
//case (_, 10):
//    print("一,四象限")
//case (10, _):
//    print("一,三象限")
//case (_, _):
//    print("爱在哪在哪")
//}
//print(point)


//%$$$%$%$%$%#$%@!% 函数 $!@#$!$%#$!#$%^!#$!

//无参无返
//无参有返
//无参有多个返回值
//有参无返
//有参有返
//有参有多个返回值
//inout函数


// 函数定义格式
// func + 函数名 (参数列表) -> 返回值类型 {}

// 返回值类型不写 表示无返回值
//func text() -> Void {
//print("我是一个无参无返回值得函数")
//}
//text()
//
//// 无参有返
//func text1 () ->String
//{
//return "我是一个无参有返的函数"
//}
//let string = text1()
//print(string)
//
//
//// 有参 无返回值
//func text2(name : String, age : Int) {
//print("爱打架阿道是\(name)  年龄是\(age)")
//}
//text2("黄军", age: 100)

// 有参有返回值
//// 参数是一个字符串和Int 返回一个数组
//func text3(name : String, age : Int) ->Array<NSObject>
//{
//    let array : Array<NSObject> = [name, age]
//    return array
//}
//print(text3("zha", age: 404))
//

//// 函数的外部参数名 第一个名字表示外部参数名, 当外界使用这个函数的时候只有的名字, 第二个参数表示内部参数名,当函数里面使用这个参数的时候使用的名字.
//func  text4(number myNumber : Int, name myName : String){
//print("我的名字是\(myName), 我的号码是\(myNumber)")
//}
//text4(number: 100, name: "赵子龙")
//
//


//// 无参有多个返回值的
//func text4() -> (String, Int) {
//return ("张三", 108)
//}
//let type = text4()
//print("\(type.0), \(type.1)")


// 有参有多个返回值
//func text5(name : String, age : Int) ->(String, Int)
//{
//    return(name, age)
//}
//let type1 = text5("zhang", age: 10)
//print("\(type1.0), \(type1.1)")


//////////函数嵌套
//func text6(){
//    func text1(){
//        print("第一层")
//        func text2(){
//            print("第二层")
//            func text3(){
//               print("第三层")
//            }
//            text3()
//        }
//        text2()
//    }
//    text1()
//}
//text6()
//
//

/////////////////////////// inout 函数/////////////////////
////Swift中的函数 本身是使用let定义的, 是不能更改的 如果想要更改可以使用var定义

//func text7(inout name : String){
//name = "赵四"
//}
//var name = ""
//text7(&name)
//print(name)


//let type = (2, 8)
//switch type{
//case (_, 1...5):
//    print("呵呵呵")
//case (_, 5...7):
//    print("嘿嘿嘿")
//default:
//    print("滚滚滚")
//}

 

Swift 入门

标签:

原文地址:http://www.cnblogs.com/fubaodong/p/5396194.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!