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 ...
随机推荐
- 使用phpstudy搭建的外网网站 运行很慢 解决办法
将连接数据库的配置文件 localhost 修改为127.0.0.1 PHP5.3以上,如果是链接localhost,会检测是IPV4还是IPV6,所以会比较慢.解决办法是:链接数据的时候,不要填写 ...
- linux下禁止root远程登录
一.添加和root权限一样的用户 1. adduser admin passwd admin (修改密码) 2.修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示 ...
- Selenium(五)鼠标和键盘事件
1.模拟鼠标找到大分类下的子分类.以网易严选为例. 如果直接找到 坚果炒货 这个元素,然后点击它来实现跳转,是会报错的. 模拟鼠标停留--点击行为: 页面已成功跳转 2.键盘事件 模拟搜索操作: ...
- selenium怎样避免被服务器检测
selenium是用来完成浏览器自动化相关的操作.可以通过代码的形式制定一些基于浏览器自动化的相关操作(行为动作),当代码执行后,浏览器就会自动触发相关的事件.但这并不能避免服务器的检测.当在浏览器中 ...
- Android Studio 3.5.2添加依赖库
因为要连接服务器的数据库,百度了一下经验,需要添加一些mysql库,看了一下经验,没有找到3.5.2版本的添加依赖库的教程. 因为新版本的androidstudio有一些不同,作以记录. 比如我们要添 ...
- python通用分页功能
实现: class Page: def __init__(self,current_page,data_count,per_page_count=10,pager_num=10): self.curr ...
- AtCoder Beginner Contest 148
ABC 148 第一次打abc,记录一下 Task Name Time Limit Memory Limit A Round One 2 sec 1024 MB B Strings with the ...
- 020_C语言常用函数
1. 清除数组,初始化数值 头文件:#include <memory.h>或 #include <string.h>函数原型:memset(void *s,int ch,siz ...
- CF 940F - Machine Learning ( 带 修 )
题目: 链接:https://codeforces.com/problemset/problem/940/F 题意:给你n个数,a[i]有q个操作,操作有两种:操作1. 1 x y 表示询 ...
- js快速将字符串数组转化为数字数组(互换)
1.数字数组转化为字符串数组 var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map(String); //结果: ['1', '2', '3', '4', '5 ...