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) {
// 这里是泛型函数的函数体部分
}
网友评论