zoukankan      html  css  js  c++  java
  • Swift

    //: 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#>)
    

      

  • 相关阅读:
    WEB 3D SVG CAD 向量 几个实施(转)
    Dos.Common
    dos.orm
    php程序员招聘
    python之禅
    Electron
    MongoDB主从复制
    OSG开发概览
    从1-100中隔5个数去掉一个数,最后去掉的哪个数(如果数过一遍了从前端接着开始)?
    django/python日志logging 的配置以及处理
  • 原文地址:https://www.cnblogs.com/Rinpe/p/5054010.html
Copyright © 2011-2022 走看看