Swift - 31 - 常量参数, 变量参数和inout参数
//: Playground - noun: a place where people can play import UIKit // swift中默认情况下, 传入的参数是不可以修改的, 也就是let类型, 也就是常量参数
// 如果想修改这个参数的值, 需要在参数前加"var", 也就是变量参数
func toBinary(var num:Int) -> String // 将一个数转换为二进制
{
var result = ""
while num != 0 {
result = String(num%2) + result
num /= 2
}
return result
} var number = 69
toBinary(number)
number // 输入结果还是69, 说明函数中对变量参数的修改, 不会影响外部变量本身 // 以下两个函数也证明了, 变量参数不会影响外部变量本身(包括数组和字典)
var a = 1
func testChangeIntFunction(var a:Int)
{
a = 0
}
testChangeIntFunction(a)
a var arr = [2, 3]
func testChangeIntFunction(var a:[Int])
{
a = [3, 4]
}
testChangeIntFunction(arr)
arr /*--------------------------------------------------------------------*/ // 那么如何实现在函数内改变外部变量本身呢? 这里就要使用到另外一个关键字"inout"了
// 这样可以理解为传入的是参数的指针(也就是内存地址)
func changeEachOther(inout a:Int, inout b:Int) {
let temp = a
a = b
b = temp
} var x = 0, y = 100
print("x = \(x), y = \(y)")
changeEachOther(&x, b: &y)
print("x = \(x), y = \(y)") // swift自带的交换函数
// swap(&<#T##a: T##T#>, &<#T##b: T##T#>)
Swift - 31 - 常量参数, 变量参数和inout参数的更多相关文章
- Swift - 1 (常量、变量、字符串、数组、字典、元组、循环、枚举、函数)
Swift 中导入类库使用import,不再使用<>,导入自定义不再使用"" import Foundation 1> 声明变量和常量 在Swift中使用 &qu ...
- swift学习第一天:认识swift以及swift的常量和变量
一:认识swift // 1.导入框架 //#import <UIKit/UIKit.h> import UIKit // 2.定义一个标识符 // int a = 10; // swif ...
- Swift 基本常量和变量,基本数据类型
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #4dbf56 } p.p2 { margin: 0.0px 0. ...
- Swift - 02 - 常量和变量
//: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...
- Swift语言—常量、变量、类型赋值
常量:常量在作用域内不能被赋值且不会发生改变,只读不写,每个常量都必须有唯一的名字和内存空间:关键字:let 变量:变量在作用区域内可以它的值可以被改变,可读可写可覆盖,每个常量都必须有唯一的名字 ...
- Swift基础语法之变量函数
import Foundation //变量声明使用 //使用 let 来声明常量,使用 var 来声明变量 常量只能为它赋值一次 let name="cuiyw"; var ag ...
- Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数
Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数 7.4.4 为外部参数设置默认值 开发者也可以对外部参数设置默认值.这时,调用的时候,也可以省略参数传递本文选自Swift1 ...
- java常量和变量的定义规则,变长参数的使用
首先是定义的一般规则,类名首字母全部大写,常量全部大写用下划线分隔,变量用驼峰形式.注意使用long赋值用L时不能写小写的L要写大写的,不然会和数字“1”傻傻分不清. 下面是举例: public cl ...
- swift 简介和常量与变量 --- swift 入门
一.思维导图 二. 代码 //创建UIView 和按钮 let views = UIView(frame: CGRect(x:20, y: 20, width: 100, height: 100))/ ...
随机推荐
- HTML入门教程(全套)
http://www.rm5u.com/html_html.html http://learn.shayhowe.com/ moe.mwulu.com http://www.w3school.co ...
- Lua table使用
days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Th ...
- Gvim一些基本配置
介绍一些关于Gvim(windows 7 32位 Vim 7.4)的基本配置,除了特别说明,代码一律添加在安装目录下的_vimrc文件中. 1.取消自动备份,这行代码需要添加在 _vimrc文件中的b ...
- socket编程:客户端与服务器间的连接以及各函数的用法
在认真的看UNP之前,一直被socket编程说的云里雾里,今天我要让大家从整天上认识socket编程,让我们知道socket编程的整个流程和各个函数的用法.这样:我们在写一些简单的socket编程时就 ...
- 【转】EditText大小(长宽)的多种设置方式----不错
原文网址:http://orgcent.com/android-edittext-ems-layout-minwidth-maxheight/ EditText大小的设置有多种方式,要想对每种方式运用 ...
- 网络流(最大独立点集):POJ 1466 Girls and Boys
Girls and Boys Time Limit: 5000ms Memory Limit: 10000KB This problem will be judged on PKU. Original ...
- ToArray()和IEnumerable<T>,List<T>
一:ToArray() 在程序中,我们往往习惯使用List<>这种集合类,但是程序中却要求需要传递一个数组,List<>已经为我们提供了toArray()方法 二:IEnume ...
- 【转】Ansys 13.0 flexlm not running完美解决方案
http://jingyan.baidu.com/article/af9f5a2dd9843a43150a4550.html 实测,12.1 用此方法问题同样得解.
- 在VC中集成cURL
libcurl 库的代码是完全开源的,但是我们一般不会在项目中直接引入它的源代码,而是通过动态链接库隐式链接的方式引入 libcrul 库.也就是说,我们需要在自己的项目中引入 libcrul 相关的 ...
- [Locked] Binary Tree Longest Consecutive Sequence
Binary Tree Longest Consecutive Sequence Given a binary tree, find the length of the longest consecu ...