Euphoria - Chức năng
Các hàm Euphoria cũng giống như các thủ tục, nhưng chúng trả về một giá trị và có thể được sử dụng trong một biểu thức. Chương này giải thích cách viết các hàm của riêng bạn trong Euphoria.
Định nghĩa hàm
Trước khi sử dụng một hàm, chúng ta cần xác định nó. Cách phổ biến nhất để xác định một hàm trong Euphoria là sử dụngfunction từ khóa, theo sau là tên hàm duy nhất, danh sách các tham số (có thể trống) và khối câu lệnh kết thúc bằng end functiontuyên bố. Cú pháp cơ bản được hiển thị ở đây -
function functionname(parameter-list)
statements
..........
return [Euphoria Object]
end function
Thí dụ
Một hàm đơn giản có tên sayHello không có tham số nào được định nghĩa ở đây -
function sayHello()
puts(1, "Hello there")
return 1
end function
Gọi một hàm
Để gọi một hàm ở đâu đó sau này trong script, bạn chỉ cần viết tên của hàm đó như sau:
#!/home/euphoria-4.0b2/bin/eui
function sayHello()
puts(1, "Hello there")
return 1
end function
-- Call above defined function.
sayHello()
Điều này tạo ra kết quả sau:
Hello there
Tham số chức năng
Cho đến bây giờ chúng ta đã thấy hàm không có tham số. Nhưng có một cơ sở để truyền các tham số khác nhau trong khi gọi một hàm. Các tham số được truyền này có thể được nắm bắt bên trong hàm và bất kỳ thao tác nào có thể được thực hiện trên các tham số đó.
Một hàm có thể nhận nhiều tham số được phân tách bằng dấu phẩy.
Thí dụ
Hãy để chúng tôi sửa đổi một chút trong hàm sayHello . Lần này cần hai tham số -
#!/home/euphoria-4.0b2/bin/eui
function sayHello(sequence name,atom age)
printf(1, "%s is %d years old.", {name, age})
return 1
end function
-- Call above defined function.
sayHello("zara", 8)
Điều này tạo ra kết quả sau:
zara is 8 years old.
Các trở lại Bản Tuyên Bố
Một hàm Euphoria phải có câu lệnh trả về trước câu lệnh đóngend function. Mọi đối tượng Euphoria đều có thể được trả lại. Trên thực tế, bạn có thể có nhiều giá trị trả về bằng cách trả về một chuỗi các đối tượng. Ví dụ
return {x_pos, y_pos}
Nếu bạn không có gì để trả lại, thì chỉ cần trả về 1 hoặc 0. Giá trị trả về 1 cho biết thành công và 0 cho biết thất bại