swift 类 结构体 作为参数 以及可变参数
- Class
class Person{
var age = 22, name = "frank"
func growolder()
{
self.age++ //++ 要跟住 不要乱打空格
// 如果是var 可以在结构体内部进行修改
}
}
func celebrationBirthday(person:Person)
{
print("生日快乐 (\(person.name))")
person.growolder()
}
let Frank = Person()
celebrationBirthday(Frank)
print(Frank.age)
参数生命为var类型
class Person{
var age = 22, name = "frank"
func growolder()
{
self.age++ //++ 要跟住 不要乱打空格
// 如果是var 可以在结构体内部进行修改
}
}
func celebrationBirthday(var person:Person)
{
print("生日快乐 (\(person.name))")
person.growolder()
}
let Frank = Person()
celebrationBirthday(Frank)
print(Frank.age)
一句话概括 如果是var 可以在结构体内部进行修改
- struct
-
struct Person{
var age = 22, name = "frank"
mutating func growolder()
{
self.age++
}
//结构体里面的函数 要修改属性 必须加上关键字 mutating
}
// 结构作为参数 传递给函数 当做 值传递, 相传地地址 加上inout
func celebrationBirthday(inout person:Person)
{
print("生日快乐 (\(person.name))")
person.growolder()
}
var Frank = Person()//这个地方注意需要 定义为var
celebrationBirthday(&Frank)
print(Frank.age)
// 1.结构传递 是作为值传递 ,所以要inout处理 传递对象得让编译器知道地址
// 2.修改结构的属性值 把结构声明为var变量 常量不允许修改内部的属性值
- 可变参数
// 可变参数
func longestWord(Words : String ...) -> String
{
var currentLongest :String?
for word in Words
{
if(currentLongest?.characters.count < word.characters.count)
{
currentLongest = word
}
}
return currentLongest!
}
let long = longestWord("大象", "猫", "大熊猫", "耗子")
三个点表示可变参数
swift 类 结构体 作为参数 以及可变参数的更多相关文章
- python的位置参数、默认参数、关键字参数、可变参数区别
一.位置参数 调用函数时根据函数定义的参数位置来传递参数. #!/usr/bin/env python # coding=utf-8 def print_hello(name, sex): sex_d ...
- Java可变参数 & Python可变参数 & Scala可变参数
Java 可变参数的特点: (1).只能出现在参数列表的最后: (2)....位于变量类型和变量名之间,前后有无空格都可以: (3).调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体 ...
- Java中不定项参数(可变参数)的作用和使用方式
引言: 我们在编写方法的过程中,可能会遇见一个方法有不确定参数个数的情况.一般我们会用方法重载来解决问题: //方法重载,解决参数个数不确定问题 public void method(); publi ...
- python函数中的位置参数、默认参数、关键字参数、可变参数区别
一.位置参数 调用函数时根据函数定义的参数位置来传递参数. #!/usr/bin/env python # coding=utf-8 def print_hello(name, sex): sex_d ...
- Python 必选参数,默认参数,可变参数,关键字参数和命名关键字参数
Py的参数还真是多,用起来还是很方便的,这么多参数种类可见它在工程上的实用性还是非常广泛的. 挺有意思的,本文主要参照Liaoxuefeng的Python教程. #必选参数 def quadratic ...
- java-不定项参数(可变参数)的作用和使用方式
引言: 我们在编写方法的过程中,可能会遇见一个方法有不确定参数个数的情况.一般我们会用方法重载来解决问题: 1 //方法重载,解决参数个数不确定问题 2 public void method(); 3 ...
- python 必选参数、默认参数、可变参数和、关键字参数
转自:https://www.liaoxuefeng.com/wiki/897692888725344/897693568201440 可变参数 在Python函数中,还可以定义可变参数.顾名思义,可 ...
- 5.Swift枚举|结构体|类|属性|方法|下标脚本|继承
1. 枚举: ->在Swift中依然适用整数来标示枚举值,需搭配case关键字 enum Celebrity{ case DongXie,XiDu,Nandi,BeiGai } // 从左 ...
- Swift枚举|结构体|类|属性|方法|下标脚本|继承
1. 枚举: ->在Swift中依然适用整数来标示枚举值,需搭配case关键字 enum Celebrity{ case DongXie,XiDu,Nandi,BeiGai } // 从左 ...
随机推荐
- noi 7219:复杂的整数划分问题
7219:复杂的整数划分问题 查看 提交 统计 提问 总时间限制: 200ms 内存限制: 65536kB 描述 将正整数n 表示成一系列正整数之和,n=n1+n2+…+nk, 其中n1>= ...
- jQuery plugin
SidebarJS http://makotot.github.io/sidebar/
- swift material
import UIKit extension UIColor { convenience init(hex:Int, alpha:CGFloat=1.0) { let red = CGFloat((h ...
- 无聊时,可以去HASKELL里找点感觉
可以和C,JAVA,PYTHON作任意的比较,感觉越来越晰一些计算机语言里深层的东东... doubleMe x = x + x doubleUs x y = x * + y * doubleSmal ...
- ISO7816协商模式和特定模式
ISO7816协议的协商模式和特定模式好多使用者都搞不明白,还经常有客户电话询问,这里将其澄清一下: ISO7816协议的协商模式和特定模式由复位应答字节TA2确定,下面是TA2的字节定义 TA2的存 ...
- WM_CLOSE、WM_DESTROY、WM_QUIT的区别(询问,销毁窗口,退出进程,都不是一回事)
1.发送消息SendMessage.PostMessage PostMessage将消息放入消息队列后马上返回,而SendMessage直到窗口过程处理完消息后才返回 2.三个消息的区别 WM_CLO ...
- sort_buffer_size:
sort_buffer_size: 每个session 必须执行一个排序 分配一个 这个大小的buffer. sort_buffer_size 不特定的对于任何存储引擎适用于一般的优化方式. sort ...
- 【转】 Ubuntu samba服务器搭建及测试--不错
原文网址:http://blog.csdn.net/longfeey/article/details/5937968 Ubuntu samba服务配置是很不错的文件应用很有学习价值, 这里我主要讲解U ...
- 【转】带checkbox的ListView实现(二)——自定义Checkable控件的实现方法
原文网址:http://blog.csdn.net/harvic880925/article/details/40475367 前言:前一篇文章给大家展示了传统的Listview的写法,但有的时候我们 ...
- Bit,Bytes,KB,MB,GB,TB,PB,EB,ZB,YB
Bit,Bytes,KB,MB,GB,TB,PB,EB,ZB,YB 汉字字符 2字节英文字符 1字节中文标点 2字节英文标点 1字节一个字节就是一个八位二进制数啊,2就是00000010,4就是000 ...