Ֆունկցիաներ
Ֆունկցիաները ծրագրավորման մեջ հանդիսանում են հիմնական կառուցվածքային բլոկներ: Դրանք թույլ են տալիս կոդը ինկապսուլացնել օգտագործելի միավորների մեջ, դարձնելով ձեր ծրագրերը ավելի մոդուլային, ընթեռնելի և պահպանելի: Այս փաստաթուղթը ընդգրկում է ֆունկցիաների շարահյուսությունը, օգտագործումը և տարբեր հնարավորությունները Eiger-ում։
Ֆունկցիաների հայտարարում
Ֆունկցիա հայտարարելու համար օգտագործեք func
բանալի բառը, որին հետևում է ֆունկցիայի անունը և կլոր փակագծերը: Ֆունկցիայի մարմինը փակելու համար օգտագործեք end
։
Շարահյուսություն
func functionName(parameters) {
~ ֆունկցիայի մարմին
}
Օրինակ
func greet(name) {
emitln("Բարև, " + name + "!")
}
Ֆունկցիայի պարամետրեր
Ֆունկցիաները կարող են ընդունել պարամետրեր, որոնք ներկայացնում են արժեքներ, փոխանցվող ֆունկցիայի մեջ: Պարամետրերը սահմանվում են կլոր փակագծերում ֆունկցիայի հայտարարության ժամանակ։
Շարահյուսություն
func functionName(param1, param2, ...) {
~ ֆունկցիայի մարմին
}
Օրինակ
func printAge(name, age) {
emitln(name + "ը " + age + " տարեկան է")
}
Վերադարձվող արժեքներ
Ֆունկցիաները կարող են վերադարձնել արժեք ret
օպերատորի միջոցով: Եթե վերադարձի օպերատորը նշված չէ, ֆունկցիան վերադարձնում է nix
(այսինքն null
C#-ում)։
Շարահյուսություն
func functionName(parameters) {
ret value
}
Օրինակ
func add(a, b) {
ret a + b
}
Տեսանելիություն
Ֆունկցիայի ներսում հայտարարված փոփոխականները տեղային են այդ ֆունկցիայի համար: Ֆունկցիաները կարող են նաև վերադարձնել ֆունկցիաներ, որոնք փակում և հիշում են այն միջավայրը, որտեղ ստեղծվել են։
func createCounter() {
let count = 0
ret func() {
count += 1
ret count
}
}
counter = createCounter()
emitln(counter()) ~ 1
emitln(counter()) ~ 2
emitln(counter()) ~ 3
Բարձրակարգ ֆունկցիաներ
Բարձրակարգ ֆունկցիաները այն ֆունկցիաներն են, որոնք ընդունում են այլ ֆունկցիաներ որպես արգումենտներ կամ վերադարձնում են դրանք որպես արդյունքներ: Դրանք հանդիսանում են ֆունկցիոնալ ծրագրավորման հիմնական հատկություններից մեկը։
func applyFunction(fn, value) {
ret fn(value)
}
func cube(x) {
ret x ^ 3
}
emitln(applyFunction(cube, 3)) ~ 27