高階函式的定義 使用與語義

2022-07-01 15:51:16 字數 1803 閱讀 3164

《高階函式定義了高階型別的處理(對映)、低階函式處理了低階型別的對映,高階函式依賴於低階函式》

高階函式的特點:

1、定義的高階函式本身的實現 ;

2、定義了參量函式的介面:輸入、輸出;

3、定義了高階函式的功能部分對輸入函式的引用或使用方式。

語義:定義高階函式並宣告混入函式的介面

本質是暴露低階函式的介面給高階函式使用;

scala:

def operate(f:(int,int) => int ) =

extension viewchainable where self: uiview {

@discardableresult

func config(_ config: (self) -> void) -> self {

config(self)

return self

extension uiview: viewchainable {

func adhere(tosuperview: uiview) -> self {

tosuperview.addsubview(self)

return self

@discardableresult

func layout(snapkitmaker: (constraintmaker) -> void) -> self {

self.snp.makeconstraints { (make) in

snapkitmaker(make)

return self

混入函式的混入形式(匿名函式):

語意:呼叫高階函式,同時定義符合介面宣告的混入函式並傳遞進去

swift:

let label = uilabel()

.adhere(tosuperview: view)

.layout { (make) in

make.top.equaltosuperview().offset(80)

make.centerx.equaltosuperview()

.config { (label) in

label.backgroundcolor = uicolor.clear

label.font = uifont.systemfont(ofsize: 20)

label.textcolor = uicolor.darkgray

label.text = "label"

extension primitivesequence where traittype == singletrait, elementtype == response

public func mapmodel(_ type: t.type) -> single{

return flatmap { response -> singlein

return single.just(response.mapmodel(type))

public func updatemodel(_ model: t) -> single{

return flatmap { response -> singlein

return single.just(response.updatemodel(model))

scala:

//list元素乘以2,對每乙個元素都做同乙個操作

vall =list(1,2,3,4,5,6,7,8)

l.map((x:int) => x*2)//最古老的方法

l.map(x => x*2)//簡化的寫法

l.map(_*2)//超簡化寫法

函式的定義與使用

方 python基本 抽象即函式的使用方法 實踐能力 學會編寫帶有函式並復用 程式 函式是一段具有特定功能的 可重複使用的語句組。函式是一種功能的抽象,一般函式表達特定功能。兩個作用 降低程式設計難度和 復用 def 函式名 引數 0個或多個 函式體 函式內部包含的一些語句 return 返回值 案...

函式的定義與使用

呼叫時執行函式 的一種方式 程式看到一段 不會直接去執行這段 而執行時需要使用函式的呼叫方式 呼叫就是給定乙個具體的值作為引數,呼叫時給出的實際引數時執行函式的輸入 實際引數呼叫後得到的返回值 函式可以有引數,也可以沒有引數,但是必須要保留括號 或者 可選引數傳遞 比如計算n!def fact n,...

函式的定義與使用

函式的定義與使用 可擴充套件性,可維護性差 冗餘 可讀性差 為什麼要用函式 模組化程式設計 什麼是函式?函式就是具備某一特定功能的工具 函式的使用必須遵循 先定義後使用的原則 先定義就是事先準備號工具 後使用,或者說拿來就用,重複使用,指的就是函式的呼叫 如何定義函式?def 函式名 arg1,ar...