swift 第二课 基础知识-2
setter 和getter 的使用--> 适合计算使用
struct Point {
    var x = 0.0, y=0.0
}
struct Size {
    var width = 0.0, height = 0.0
}
struct Rect {
    var orgin = Point()
    var size = Size()
    //    lazy var 变量: 类型 = { 创建变量代码 }()
    //    懒加载的使用方法
    //    lazy var center : Point = {
    //        let x = self.orgin.x + self.size.width/2
    //        let y = self.orgin.y + self.size.height/2
    //
    //        return Point(x: x,y: y)
    //    }()
    mutating  func getCenter()-> (Double,Double){
        let x = self.orgin.x + self.size.width/
        let y = self.orgin.y + self.size.height/
        return (x,y)
    }
    var center:Point {
//        setter 和getter 适合 计算属性
        get {
            let x = self.orgin.x + self.size.width/
            let y = self.orgin.y + self.size.height/
            return Point(x :Double(x) , y : Double(y))
        }
        set {
            orgin.x = newValue.x - size.width
            orgin.y = newValue.y - size.height
        }
    }
}
外部调用 及显示结果
   var rect = Rect(orgin:Point(x:,y:),size:Size(width:,height:))
        print("rect 的数值 是\(rect)")
        print("rect 的 center 是 \(rect.getCenter())")
        rect.center = Point (x:10.0,y:10.0)
        print("rect 的 center 是 \(rect.center)")
结果
rect 的数值 是Rect(orgin: swift_003.Point(x: 100.0, y: 100.0), size: swift_003.Size(width: 100.0, height: 100.0))
rect 的 center 是 (150.0, 150.0)
rect 的 center 是 Point(x: -40.0, y: -40.0)
swift 第二课 基础知识-2的更多相关文章
- swift 第一课  基础知识-1
		1. 基本的打印: print("这是学习 swift 的第一课") var varA = print("a 的值是 \(varA)") //注:字符串打印参数 ... 
- HTML第一课——基础知识普及【1】
		请关注公众号:自动化测试实战 HTML概念及编写规范 html叫做超本文标记语言,注意它知识标记语言,不是编程语言. 编写规范: 由标记(html, div, p, h1等)组成 标记成对出现(< ... 
- HTML第一课——基础知识普及【2】
		关注公众号:自动化测试实战 img标签 我们先看一下文档结构: 这里我们文件当前位置就是lesson.html,所以现在我们img属性src给的值要进入imgs文件夹,所以我们可以用相对路径来表示,看 ... 
- IOS之swift第一课基础代码
		import Foundation //import Foundation 导入模块,专业术语也是导入 包,库的 意思. var str = "Hello World" //声明一 ... 
- Python学习第二节——基础知识
		# !/usr/bin/edv python 脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它.# -*- coding:UTF-8 -*- 标明编码注释 ... 
- Linux基础第一课——基础知识了解
		前言 发展历史 linus 林纳斯 赫尔辛基大学 在自己的笔记本上安上自己写的操作系统 基于Linux内核 Linux内核 也是基于unix内核开发出来 unix 不开源 只能军方和大学使用 Linu ... 
- python第一课--基础知识
		python简介 Python是一种计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的 ... 
- Swift之基础知识
		Swift之基础知识 出于对Swift3.0的学习,写下这篇基本语法的笔记.希望能帮助记忆 -0- 这边提供Swift3.0中文教材,资源链接: https://pan.baidu.com/s/1c2 ... 
- 学习javascript基础知识系列第二节 - this用法
		通过一段代码学习javascript基础知识系列 第二节 - this用法 this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象.但是在javascr ... 
随机推荐
- elk架构
			(1)Kafka:接收用户日志的消息队列.(2)Logstash:做日志解析,统一成JSON输出给Elasticsearch.(3)Elasticsearch:实时日志分析服务的核心技术,一个sche ... 
- DeviceSupport  路径
			/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSuppor 
- JS 框架安全报告:jQuery 下载次数超过 1.2 亿次
			尽管 JavaScript 库 jQuery 仍被使用,但它已不再像以前那样流行.根据开源安全平台 Snyk 统计,目前至少十分之六的网站受到 jQuery XSS 漏洞的影响,甚至用于扩展 jQue ... 
- CF741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths    (dsu on tree) 题解
			先说一下dsu算法. 例题:子树众数问题. 给出一棵树,每个点有点权,求每个子树中出现次数最多的数的出现次数. 树的节点数为n,\(n \leq 500000\) 这个数据范围,\(O(n \sqrt ... 
- 富文本编辑器粘贴word内容
			很多时候我们用一些管理系统的时候,发布新闻.公告等文字类信息时,希望能很快的将word里面的内容直接粘贴到富文本编辑器里面,然后发布出来.减少排版复杂的工作量. 下面是借用百度doc 来快速实现这个w ... 
- D. AB-string (   思维   )
			传送门 题意: 给你一个长度为n的字符串, 字符串只由 A B 组成. 问你这个字符串存在多少个 good string: ( 连续的一段子串 ) good string 的定义就是: 字符串中所有的 ... 
- 关于openstack 网络相关的文章收集
			journalctl工具基础介绍(你需要这个的.) https://blog.51cto.com/13598893/2072212 新版devstack使用systemd的方式来管理OpenStack ... 
- Python3读写JSON文件
			JSON简介 JSON(JavaScript Object Notation)即JavaScript对象表示法,一种轻量级,通用的文本数据格式. JSON语法支持对象(Object),数组(Array ... 
- masm for windows2015 下载安装
			下载地址: https://sm.myapp.com/original/Office/wasm2015.rar 
- shell 统计行数,单词个数,字符个数
			如果我们想知道1.txt中有多少行,多少个单词,多少个字符.我们可以使用wc命令.选项与参数-l:今列出行-w:今列出多少字(英文单词)-m:多少字符[zhang@localhost ~]$ cat ... 
