swift  学习

// Playground - noun: a place where people can play

import UIKit

var str = "Hello, playground"
var i = 10
let ss = 90

println("fdsa")

println(i)

var days = [ 1: "a", 2: "b" ]

print(days)
print(days[0])

let ha = true;
if ( ha )
{
    print("aa");
}
else
{
    print("bb");
}

for var index = 1; index < 10; index++
{
    print(index);
}

func greet( name:String, day: String ) -> String
{
    return name + day;
}

greet("aa", "bb")

func add()->(Int, Int)
{
    return(12,23)
}

add()

// class
class CTest
{
    var m_age:Int = 10;
    func test() -> Int
    {
        return m_age;
    }
}

let tt = CTest();
tt.test()

// string test 1
var myname = "this is a test"
for mm in myname
{
    print(mm);
}

// string 大小写转化
let myString = "Wait a moment, please."
let newString = myString.uppercaseString

let myString2 = "Wait a moment, please."
let newString2 = myString.lowercaseString

// 字符串查找
var myString3 = "This is a string test"
if myString3.rangeOfString("string") != nil
{
    println("exists")
}

// 字符串分割
var myString4 = "Berlin, Paris, New York, San Francisco"
var myArray = myString4.componentsSeparatedByString(",")

// 先转为NString
var s="1234567890"
var ns1=(s as NSString).substringFromIndex(5)
var ns2=(s as NSString).substringToIndex(4)

var ns3=(s as NSString).substringWithRange(NSMakeRange(4, 1))

// 用自带的区间来实现
let index  = advance(s.startIndex, 5)
let index2 = advance(s.endIndex, -6);
var range  = Range<String.Index>(start: index2,end: index)

var s1:String = s.substringFromIndex(index)
var s2:String = s.substringToIndex(index2)
var s3 = s.substringWithRange(range)

// 更好的方法
extension String
{
    subscript (r: Range<Int>) -> String
    {
        get {
            let startIndex = advance(self.startIndex, r.startIndex)
            let endIndex = advance(startIndex, r.endIndex - r.startIndex)
            
            return self[Range(start: startIndex, end: endIndex)]
        }
    }
}

// 调用
println( s[0...3] )
println( s[1..<3] )

// double to string
let d = 1.0 / 3.0
let sd = String(format: "%0.3f", d)

// string to double
let num = atof( sd )

// 数组的操作
var array = ["ab", "c", "d" ]

// 增加
array.append("ff")

// 删除
let array2 = array.removeAtIndex(1)

println( array )

// 通过下标修改元素
array[0] = "Six eggs"

// 插入元素
println( array )
array.insert("InsertedValue", atIndex: 0)

// 循环
for item in array
{
    println(item)
}

// 使用了全局函数enumerate
for (index, value) in enumerate(array)
{
    println("Item at index \(index + 1) is \(value)")
}

// 定义一个字典
var dic = Dictionary<Int32, String>()

dic[1] = "a"
dic[2] = "b"
dic[3] = "d"
dic[4] = "f"
dic[5] = "e"

// 用值来删除
dic[2] = nil

println(dic)

// 用key 来删除数据
let removeValue = dic.removeValueForKey( 3 )
println(dic)

// 根据key 修改 value
let oldValue = dic.updateValue("Dubin Internation", forKey:1)
println(dic)

// 迭代数据
for (key, v) in dic
{
    println("\(key): \(v)")
}

// 所有的key
for key in dic.keys
{
    println("dic key: \(key)")
}

// 所有的value
for v in dic.values
{
    println("dic value: \(v)")
}

// 把字典所有的值或者键存储到数组中
let mykeys  = Array( dic.keys )
let myvalues = Array( dic.values )

// 闭包的使用
var names2 = ["Swift", "Arial", "Soga", "Donary"]

// 第一种方式:使用函数
func back(firstString: String, secondString: String) -> Bool
{
    return firstString > secondString // 升序排序
}

// 这里第二个参数,传了一个函数
var reversed = sorted( names2, back )
println(reversed)

// 第二种排序写法
var rev = sorted( names2, {a,b in return a > b } )
print( rev )

var rev2 = sorted( names2, > )

//////////////////////////////////////////////////////
// 单实例模式
class ZLAnimal: NSObject
{
    class var sharedManager: ZLAnimal
    {
        struct Val
        {
            static var onceToken: dispatch_once_t = 0
            static var staticInstance : ZLAnimal? = nil
        }
        dispatch_once(&Val.onceToken, { () -> Void in
            Val.staticInstance = ZLAnimal()
        })
        
        return Val.staticInstance!
    }
}

// 单实例的调用
let animal2 = ZLAnimal.sharedManager
println(animal2)
///////////////////////////////////////////////////////






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值