博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift - 31 - 常量参数, 变量参数和inout参数
阅读量:6971 次
发布时间:2019-06-27

本文共 1009 字,大约阅读时间需要 3 分钟。

//: Playground - noun: a place where people can playimport 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 = 69toBinary(number)number      // 输入结果还是69, 说明函数中对变量参数的修改, 不会影响外部变量本身// 以下两个函数也证明了, 变量参数不会影响外部变量本身(包括数组和字典)var a = 1func testChangeIntFunction(var a:Int){    a = 0}testChangeIntFunction(a)avar 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 = 100print("x = \(x), y = \(y)")changeEachOther(&x, b: &y)print("x = \(x), y = \(y)")// swift自带的交换函数// swap(&<#T##a: T##T#>, &<#T##b: T##T#>)

  

转载地址:http://xxfsl.baihongyu.com/

你可能感兴趣的文章
bzoj 2244: [SDOI2011]拦截导弹
查看>>
UNIX 系统概述
查看>>
Ubuntu14.04下安装Hadoop2.4.0 (单机模式)
查看>>
每周一荐:Google的序列化框架Protobuf
查看>>
002-B/S架构&C/S架构
查看>>
iOS注册collcetionViewFlowLayout
查看>>
python-selenium 元素定位
查看>>
windows下python的安装
查看>>
解决数据库卡、慢,问题多,难管理——老技术的执著
查看>>
四则运算的进度和遇到的问题
查看>>
java继承如何理解呢??
查看>>
只读字段(readonly)和常量(const)
查看>>
nyoj 1129 Salvation
查看>>
c#文件操作(创建、添加)
查看>>
CEntOS 安装增强功能
查看>>
MySQL之Join
查看>>
git详细说明
查看>>
Hdoj 1253
查看>>
ios学习视频比较
查看>>
mysqlbinlog读取二进制日志文件时,报错 (转)
查看>>