1. 程式人生 > >Swift基礎-0006 【swift函式呼叫】

Swift基礎-0006 【swift函式呼叫】

*swift函式呼叫

  • swift函式呼叫
  • swift函式巢狀
  • swift函式多型
//: case5 函式呼叫

import UIKit

var str = "Hello, playground"

//帶一個引數一個返回值函式
func sayName(name:String) ->String
{
    var say = "my name is "+name
    return say
}

println(sayName("張三"))


//多引數函式
func mayArgs(name:String,old:Int) ->String
{
    return "my name is "
+ name + "old is \(old))" } println(mayArgs("李四",29)) //無返回值無引數函式 func method() { println("world") } print("hello ") method() println() //多返回值函式 //統計abc個數 func manyArgs(name:String) ->(a:Int , b:Int , c:Int) { var A = 0 , B = 0, C = 0, D = 0 for str in name { switch String
(str).lowercaseString { case "a": A++ case "b": B++ case "c": C++ default: D++ } } return (A,B,C) } let rt = manyArgs("basaaaae") println("base 這個字串共含有\(rt.a)個a \(rt.b)個b \(rt.c)個C "
) //擴充套件引數的兩種用法 func kuoArgs(name n:String,old o:Int) ->String { return "名叫:" + n + " " + "年齡" + String(o) } let str2 = kuoArgs(name:"張三",old:22) println("\(str2)") //函式的預設引數值處理 func defaultArgs(name n:String = "張三",old o:Int = 31 )->String { return "name is " + n + " and old is" + String(o) } println(defaultArgs(name:"李四")) //如果只給了一個引數則未給出的引數使用預設值 //可變引數 類似於Java func otherArgs(name:String , old:Int , other:String...)->String { var rt2 = "name is " + name + " old is " + String(old) for str5 in other { rt2 += str5 } return rt2 } let str3 = otherArgs("李四",21, " 男"," 未婚"," 身體健康") println(str3) //保留函式體內對傳入引數的修改 func case1(inout name:String , old:Int)->String { name = "喵小喵" return "name is "+name+" old is " + String(old) } var name = "隔壁老王" println(case1(&name,21)) println(name) //函式的多型 var case2 :(inout String,Int)-> String var case3 :(String,String...)->String func myCase2(inout name:String,old:Int)->String { return "case2 \(name) \(String(old))" } func myCase3(var name:String,other:String...)->String { var str9:String = "" for str0 in other { str9 += str0 } return name + str9 } //初始化case2 case2 = myCase2 case3 = myCase3 var name0 = "隔壁老王" println(case2(&name0 ,32)) println(case3("你好","小明","你出去")) //函式呼叫 func mycase4(case2:(inout String,Int)->String , str:String) { var name8 = "" println(case2(&name,40)) } mycase4(case2,"hell0") //函式巢狀 func myCase5(flag:Bool ,m:Int ,n:Int)->Int { func method1()->Int{return m+n} func method2()->Int{return m-n} return flag ? method1() : method2() } println(myCase5(true,11,22)) println(myCase5(false,22,44))

控制檯列印

my name is 張三
my name is 李四old is 29)
hello world

base 這個字串共含有5個a 1個b  0個C 
名叫:張三 年齡22
name is 李四 and old is31
name is 李四 old is 21 男 未婚 身體健康
name is 喵小喵 old is 21
喵小喵
case2 隔壁老王 32
你好小明你出去
case2 喵小喵 40
33
-22

圖一
圖二
圖三
圖四
圖五

Author:[email protected] 歡迎交流

相關推薦

Swift基礎-0006 swift函式呼叫

*swift函式呼叫 swift函式呼叫 swift函式巢狀 swift函式多型 //: case5 函式呼叫 import UIKit var str = "Hello, playground" //帶一個引數一個返回值函式 func say

Python小白學習之路(十三)—遞迴呼叫

一、遞迴呼叫定義 在函式內部,可以呼叫其他函式。 如果在呼叫一個函式的過程中直接或間接呼叫自身本身,則稱為遞迴呼叫 從某種意義上來說,遞迴呼叫可以實現無限迴圈 二、遞迴呼叫的特性 必須有一個明確的結束條件 每次進入更深一層遞迴時,問題規模相比上次遞迴都應有所減少 遞迴效率不高,遞迴層次

Python基礎字典&字串 (05)

字典   字典是另一種可變容器模型,且可儲存任意型別物件。 字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中 info={"name":"w",      "age":

STM32F4之USART函式操作

       07xx內嵌四個通用同步/非同步接收器​​(USART1,USART2,USART3 和USART6)和兩個通用非同步收發器(UART4和UART5)。這6個介面提供非同步通訊的IrDASIR ENDEC支援,多機通訊模式,單線半雙工通訊模式LIN主/從功能。 USART1和USART6介面能夠

原創翻譯Matlab函式參考imadjust函式,調整影象強度與色彩

IMADJUST 調整影象的強度或色彩。 J = IMADJUST(I) 將影象I中的畫素強度值對映到影象J中,使1%的資料在I的低和高 強度下達到飽和。這將增強輸出影象J的對比度。 J = IMADJUST(I,[LOW_IN; HIGH_IN],[LOW_O

原創翻譯Matlab函式參考strcmp 字串比較。

TF = STRCMP(S1,S2) 比較字串S1和S2,如果兩者相同,則返回邏輯1(真),如 果不相同,則返回邏輯0(假)。 TF = STRCMP(S,C), 比較字串S與單元矩陣C中的每個元素,其中S是一個字元向 量(或是一個1×1單元陣列),C是一個字串

讀書報告彙總 讀書報告--01神經網路基礎學習 讀書報告--02神經網路基礎學習 讀書報告--03神經網路基礎學習 讀書報告--04神經網路基礎學習

以下是本人神經網路基礎的學習過程,邊學邊記,包含對已學知識的總結概況和部分個人見解,目前7篇文獻才學習到卷積神經網路和迴圈神經網路的理論基礎上 對於卷積神經網路的訓練還在研究學習中,希望能夠掌握透裡面的知識,學習完後再對基礎的數字識別案例進行實踐,下個星期再放上其餘的讀書報告 【讀書報告--01】神經網路

STM32F4之ADC1函式操作

折騰了兩天ADC多通道取樣,取樣的結果都很亂,完全不是預期值。在amobbs求助也沒有找到結果。於是決定從簡單開始,一步步折騰著破ADC。 【ADC試驗1實驗說明】             1、這個實驗僅僅是初始化一個ADC,對其輸入進行取樣。            

617. Merge Two Binary Trees 遞迴呼叫

Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are

生成函式+計數LOJ6389 [THUPC2018] 好圖計數

【題目】 原題地址 定義 G G G的補圖與

[Rcode]資料框的基礎操作不定期更新

一 資料的篩選與處理 1 新增新的一列,把連續型變數(如身高)轉化為類別型變數 data$height[data$height>=3]<-NA #把異常值重新編碼為缺失值data<-within(data,{ heightcat&l

java基礎繼承--->多型記憶體圖

<span style="font-size:14px;">1:Animal a = new Cat(); 1.1:在棧中建立區域,型別為Animal,變數名:a; 1.2:在堆中new Cat();佔用一塊區域。地址值:[0x3a4] 1.3:spuer()例項化父類Animal。 1

STM32F4 GPIO 呼吸燈函式操作

GPIO的一些特性,翻譯自ST的參考手冊 1、16組IO可用 2、推輓/開漏+上拉/下拉 3、可從ODR輸出資料,也可從外設輸出資料 4、每個IO速度可獨立設定 5、浮空輸入,上下拉輸入,模擬輸入 6、輸入資料到IDR或者外設 7、ODR中資料可通過GPIOx_BSRR單獨設定某一位。 8、

SG函式 && 推導HDU

Step1 Problem: 給你 n 堆石子,每堆石子的個數分別為 a[i]。 Nim 博弈的基礎上多一個條件:可以將一堆石頭分成三堆,每堆至少得大於 0,問你先手贏,還是後手 資料範圍: 1<=n<=1e6, 1<

函式版本基於STM32F103的MPU6050的原始資料讀取程式詳解

 因為我的部落格已經對I2C協議的詳細過程已經做了一個例子!所以這個MPU6050的程式我將使用庫函式完成! 第一步:硬體連線: 第二步:初始化I2C埠的函式: /***PB6/PB7 埠初始化****/ static void I2C_GPIO_Config(voi

C++基礎知識:c 函式呼叫過程原理及函式棧幀分析

1.關於棧   首先必須明確一點也是非常重要的一點,棧是向下生長的,所謂向下生長是指從記憶體高地址->地地址的路徑延伸,那麼就很明顯了,棧有棧底和棧頂,那麼棧頂的地址要比棧底低。對x86體系的CPU而言,其中   ---> 暫存器ebp(base pointer

thinkphp3.2跨控制器呼叫

【跨控制器呼叫】 一個控制器在執行的時候,可以例項化另外一個控制,並通過物件訪問其指定方法。 跨控制器呼叫可以節省我們程式碼的工作量 例如:有10個頁面,都要現實指定的資料資訊顯示。比如我們網站的“會

Swift基礎Swift 4.0學習筆記

The Swift Programming Language 4.0 中文版學習筆記 1 1. 基礎部分 註釋 巢狀註釋: /* A /* B */ / 常量和變數 常量和變數名可以使用Unicode字元來命名,但不能包含數學符號,箭

swift-總結基礎使用

宣告變數與常量 //使用var宣告一個變數 var str = "Hello, playground" str = "Hello world"; //使用let宣告一個常量 let str1 = "我是帥哥"; str1 = "我不是帥哥"; //這句話

Swift 4.1 關於Swift4.0以後呼叫MJExtension無法模型轉換問題

1、本人使用swift4.1,弄了一晚上才弄好,結果還是一個小問題真是尷尬, 要在model中每個屬性前面加上@objc import UIKit class UserModel: NSObject { @objc var dix = String() }