美文网首页
Swift学习笔记1

Swift学习笔记1

作者: voyager3 | 来源:发表于2020-06-16 14:45 被阅读0次
import UIKit

var str = "Hello"

/* 写个注释
/*第二行注释*/
写个注释 */

typealias num = Int64

var `adsdsa` = "Runooa"

print("dsasdfasdfasf",terminator:"")
print("dsasdfasdfasf",terminator:"")
print("dsasdfasdfasf",terminator:"")
print("dsasdfasdfasf")
print("dsasdfasdfasf",terminator:"")
  
var a : num = 64
let theInput = readLine()

var myString:String?

var f = 000_1000_000_000.0

print(f * 2)

myString = "Hello, Swift!"

if let yourString = myString {
   print("你的字符串值为 - \(yourString)")
}else{
   print("你的字符串没有值")
}

for index in 1...5 {
    print(index)
}

print(myString!.isEmpty)
print(myString!.count)

print(myString == adsdsa)

print(myString!.unicodeScalars)

for code in myString!.utf8 {
    print(code)
}

if adsdsa < myString! {
    print("adsdsa 大")
}else{
    print(myString?.components(separatedBy: CharacterSet.init(charactersIn: "o")).last as Any)
    print("adsdsa 小")
}

var someInts = [Int](repeating: 9, count: 5)
var someInts2 : [Int] = [660+6]

print(someInts2[0],terminator:"")

someInts.append(1)

for i in someInts {
    print(i)
}

someInts += someInts
for (idex,item) in someInts.enumerated() {
    print("\(idex) and \(item)")
}

var someDict: [Int:String] = [1:"one",2:"two",3:"three",4:"four",5:"five"]

var someVar = someDict[5]

func run(someone name:String,location street:String) -> (str1:String,str2:String)? {
    return (name + "在" + street + "跑","hehe")
}

print(run(someone: "老板",location: "南京中路") ?? "bu")

print()

func duoge<T>(members:T...){
    for i in members {
        print(i)
    }
}

duoge(members: 1,222)

func swapTwoInts(_ a: inout Int, _ b: inout Int) {
    let temporaryA = a
    a = b
    b = temporaryA
}


var x = 1
var y = 5
swapTwoInts(&x, &y)
print("x 现在的值 \(x), y 现在的值 \(y)")

func sum(a: Int, b: Int) -> Int {
   return a + b
}

var addition: (Int, Int) -> Int = sum
print("输出结果: \(addition(40, 89))")

let names = [1, 9, 8, 5, 3]

//func backwards(s1: Int, s2: Int) -> Bool {
//    return s1 > s2
//}

//func backwards(s1: Int, s2: Int) -> Bool {
//    return s1 > s2
//}

var sort = names.sorted(){$0 < $1}

var sort2 = names.sorted{$0 < $1}

print(sort)
print(sort2)

var reversed = names.sorted(by : {$0 > $1})

print(reversed)

enum Month: Int {
    case January = 1, February, March, April, May, June, July, August, September, October, November, December
}

let yearMonth = Month.May.rawValue
print("数字月份为: \(yearMonth)。")

class sample {
    lazy var no = number() // `var` 关键字是必须的
}

class number {
    var name = "懒加载"
}

var firstsample = sample()
print(firstsample.no.name)


class sample2 {
    var no1 = 0.0, no2 = 0.0
    var length = 300.0, breadth = 150.0
    
    var middle: (Double, Double) {
        get{
            return (length / 2, breadth / 2)
        }
        set(axis){
            no1 = axis.0 - (length / 2)
            no2 = axis.1 - (breadth / 2)
        }
    }
}

var result = sample2()
print(result.middle)
result.middle = (0.0, 10.0)
print(result.no1)
print(result.no2)

/*
 willSet在设置新的值之前调用
 didSet在新的值被设置之后立即调用
 willSet和didSet观察器在属性初始化过程中不会被调用
 */
class Samplepgm {
    var counter: Int = 0{
        willSet(newTotal){
            print("计数器: \(newTotal)")
        }
        didSet{
            if counter > oldValue {
                print("新增数 \(counter - oldValue)")
            }
        }
    }
}
let 哈哈 = Samplepgm()
哈哈.counter = 100
哈哈.counter = 800

//使用关键字 static 来定义值类型的类型属性,关键字 class 来为类定义类型属性。

struct Structname {
   static var storedTypeProperty = " "
   static var computedTypeProperty: Int {
    return 50;
   }
}

var numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]
numberOfLegs["bird"] = 2

print(numberOfLegs)

/*我们可以使用 final 关键字防止它们被重写。*/

/*便利构造器 convenience*/

class SuperClass {
    internal var corners = 4
    var description: String {
        return "\(corners) 边"
    }
}

let rectangle = SuperClass()
print("矩形: \(rectangle.description)")

class SubClass: SuperClass {
    override init() {  //重载构造器
        super.init()
        corners = 5
    }
}

let subClass = SubClass()
print("五角型: \(subClass.description)")

func swapTwoValues<T>(_ a: inout T, _ b: inout T){
    
}

class SomeClass{
    
}

class SomeProtocol{
    
}

func someFunction<T: SomeClass, U: SomeProtocol>(someT: T, someU: U) {
    // 这里是泛型函数的函数体部分
}

相关文章

网友评论

      本文标题:Swift学习笔记1

      本文链接:https://www.haomeiwen.com/subject/atlsxktx.html