swift 之structs相关的学习

结构体(struct)不仅能够有元组类似的数据存储功能,而且能够给结构体定义函数(是元组tuple话,只能定义非成员函数来实现)


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


import UIKit


var str = "Hello, playground"


//name types


//struct class -valueType


let centerx = 100.0

let centery = 100.0


let distabce = 200.0


func intrange(x:Double , y:Double) -> Bool {

    

    let distx = x-centerx

    let disty = y-centery

    

    let dist = sqrt(pow(distx, 2)+pow(disty, 2))

    

    return dist<distabce

    

}


intrange(100, y: 200)


intrange(100, y: 500)




//初始化一个struct


struct Location {

    var  x : Double

    var y : Double

    

    //自定义的init

    init(stringPoint:String){

        

        let xy = stringPoint.characters.split(",")

        

        x = atof(String(xy.first!))

        y = atof(String(xy.last!))

        

    }

    

    init(x:Double,y:Double){

        self.x = x

        self.y = y

    }

    

    

  mutating  func moveHori(dist :Double) {

        self.x += dist

    }

}

//第一种

var  poina = Location(x :100, y:200)

//第二种

var pointB = Location(stringPoint: "100,200")


poina.x

poina.y = 500.0


func intrange2(point: Location) -> Bool {

    

    let distx = point.x-centerx

    let disty = point.y-centery

    

    let dist = sqrt(pow(distx, 2)+pow(disty, 2))

    

    return dist<distabce

    

}


intrange2(poina)


//struts 方法


func moveH(dist :Double, inout point: Location)  {

  point.x += dist

}


moveH(100, point: &poina)


poina.moveHori(100.0)


//extension struct


extension Location{

    mutating func moveVer(dist: Double){

    self.y += dist

    }

}


poina.moveVer(100)


//扩展string方法



extension String{

    func isOushu() -> Bool {

        return self.characters.count%2 == 0 ?true:false

    }


}


"swift is good language".isOushu()



        


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值