Trong bài viết này, bạn sẽ tìm hiểu mọi thứ về hàm, hàm là gì, cú pháp, các kiểu trong Swift với các ví dụ.
Hàm là gì?
Hàm là một nhóm các câu lệnh xác định một hành động được thực hiện. Công dụng chính của một hàm là làm cho mã có thể sử dụng lại được.
Về mặt kỹ thuật, bạn có thể coi một chức năng như một cỗ máy. Một máy thực hiện một nhiệm vụ cụ thể, yêu cầu đầu vào, xử lý đầu vào và trả lại đầu ra.
Các loại chức năng
Tùy thuộc vào việc một hàm được xác định trước hoặc được tạo bởi lập trình viên; có hai loại chức năng:
- Các hàm thư viện - Các hàm đã được định nghĩa sẵn trong Swift Framework.
- Các hàm do người dùng định nghĩa - Các hàm do người lập trình tự tạo.
Chức năng Thư viện
Các hàm thư viện là các hàm tích hợp sẵn đã được định nghĩa trong Swift framework. Các hàm này hiện diện để giải quyết các vấn đề phổ biến trong Swift để bạn không phải tự giải quyết chúng. Chúng là các hoạt động đơn giản như in, tìm tối thiểu và tối đa, v.v.
Bạn có thể sử dụng hàm thư viện trực tiếp bằng cách gọi (gọi) nó. Nếu muốn, bạn có thể xem tất cả các chức năng bên trong Swift framework. Chỉ cần viết nhập Swift, nhấn Cmd và nhấp vào nó. Bạn sẽ điều hướng đến một trang mới. Tìm kiếm tất cả các câu bắt đầu bằng func
từ khóa.
Ví dụ 1: Thư viện hoặc Chức năng tích hợp
print("Hello, World!")
Khi bạn chạy chương trình trên, kết quả đầu ra sẽ là:
Chào thế giới!
Trong chương trình trên, chúng ta đã gọi một print
hàm tích hợp được định nghĩa trong Swift Framework. Hàm được sử dụng để in đầu ra trong bảng điều khiển.
Chúng ta có thể gọi print()
hàm vì Swift framework được tự động nhập vào Playground của chúng ta. Nếu không, chúng ta nên tự nhập nó bằng cách viết import Swift
.
Chức năng do người dùng xác định
Swift cũng cho phép bạn xác định chức năng của riêng mình. Tạo chức năng của riêng bạn giúp viết mã để giải quyết vấn đề hoặc thực hiện các tác vụ không có trong Swift Framework. Bạn cũng có thể sử dụng lại chức năng của mình để thực hiện các tác vụ tương tự trong tương lai.
Tương tự như vậy, các Hàm cũng có thể được phân loại trên cơ sở các tham số và câu lệnh trả về. Xem bài viết Các kiểu tham số hàm Swift và kiểu trả về.
Xác định một chức năng
func function_name (args…) -> ReturnType (// câu lệnh trả về giá trị)
Hãy mô tả ngắn gọn từng thành phần:
func
là từ khóa bạn phải viết để tạo một hàmfunction_name
là tên của một hàm. Bạn có thể đặt cho nó bất kỳ tên nào xác định chức năng hoạt động.args…
xác định đầu vào mà một hàm chấp nhận.->
Toán tử này được sử dụng để chỉ ra kiểu trả về của một hàm.ReturnType
xác định loại giá trị bạn có thể trả về từ một hàm. Ví dụInt
,String
v.v.return
từ khóa được sử dụng để chuyển quyền điều khiển của một chương trình sang lệnh gọi hàm và cũng trả về giá trị từ một hàm.
Ngay cả khi bạn không chỉ định từ khóa return , hàm sẽ tự động trả về sau khi thực hiện câu lệnh cuối cùng.value
đại diện cho dữ liệu thực tế được trả về từ hàm. Loại giá trị phải khớp vớiReturnType
.
Chức năng hoạt động như thế nào?
Trong sơ đồ trên, câu lệnh function_name(args)
gọi / gọi hàm với các giá trị đối số là args, sau đó rời khỏi phần mã hiện tại (tức là ngừng thực thi các câu lệnh bên dưới nó) và bắt đầu thực hiện dòng đầu tiên bên trong hàm.
- Chương trình đi đến một dòng mã
func function_name(Args… )
và chấp nhận các giá trị args được truyền trong quá trình gọi hàmfunction_name(args)
. - Sau đó chương trình thực hiện các câu lệnh
statementsInsideFunction
được định nghĩa bên trong hàm. - Các câu lệnh bên trong hàm được thực hiện theo thứ tự từ trên xuống dưới, lần lượt.
- Sau khi thực hiện câu lệnh cuối cùng, chương trình rời khỏi hàm và quay trở lại vị trí bắt đầu từ đó tức là
function_name(args)
. let val =
lưu trữ giá trị trả về từ hàm trong một giá trị không đổi. Tương tự, bạn có thể lưu trữ trong một biến dưới dạngvar val =
.- Sau đó, các câu lệnh
statementsOutsideFunction
được thực thi.
Ví dụ 2: Làm thế nào để định nghĩa một hàm trong Swift?
func greet(user:String) ( print("Good Morning! (user)") )
Hình trên là định nghĩa hàm bao gồm các thành phần sau:
- Từ khóa
func
đánh dấu sự bắt đầu của tiêu đề hàm. greet
là tên hàm để xác định và gọi hàm duy nhất trong chương trình.(user:String)
đánh dấu phần cuối của tiêu đề hàm và chấp nhận một tham số kiểuString
. Xem bài viết Các kiểu tham số hàm và kiểu trả về của Swift định nghĩa hàm với các tham số.- Hàm bao gồm một
print
câu lệnh bên trong phần thân sẽ thực thi sau khi bạn gọi hàm.
Gọi một hàm
Khi bạn đã tạo một hàm, bạn có thể gọi nó trong chương trình của mình để thực thi các câu lệnh được khai báo bên trong hàm. Để gọi một hàm, bạn chỉ cần viết tên hàm theo sau là () và chuyển các tham số đầu vào bên trong nó như:
chào (người dùng: "Isac")
Ví dụ 3: Gọi một hàm trong Swift
func greet(user:String) ( print("Good Morning! (user)") ) greet(user: "Isac")
Khi bạn chạy chương trình trên, kết quả đầu ra sẽ là:
Buổi sáng tốt lành! Isac
Trong đoạn mã trên, greet(user: "Isac")
gọi hàm và chuyển giá trị Isac
của kiểu String
. Sau đó, print
câu lệnh bên trong hàm sẽ thực thi.
Báo cáo trả hàng
Từ khóa return yêu cầu chương trình rời khỏi hàm và quay trở lại dòng nơi thực hiện lệnh gọi hàm.
Bạn cũng có thể chuyển giá trị bằng return
từ khóa trong đó giá trị là một biến hoặc thông tin khác quay lại từ hàm.
Ví dụ 3: Hàm với từ khóa trả về
func greet(user:String)-> String ( return "Good Morning! (user)" ) let greeting = greet(user: "Isac") print(""" You have a new message (greeting) """)
Khi bạn chạy chương trình trên, kết quả đầu ra sẽ là:
Bạn có một tin nhắn mới Chào buổi sáng! Isac
Trong đoạn mã trên, greet(user: "Isac")
gọi hàm và chuyển giá trị Isac
của kiểu String
. return "Good Morning! (user)"
câu lệnh trả về giá trị của kiểu String
và chuyển chương trình sang lời gọi hàm.
let greeting =
lưu trữ giá trị trả về từ hàm. Sau khi hàm trả về, print
câu lệnh bên dưới lệnh gọi hàm sẽ thực thi.
Những điều cần ghi nhớ
- Đặt tên hàm phản ánh mục đích của hàm.
- Một chức năng chỉ nên hoàn thành một nhiệm vụ. Nếu một hàm thực hiện nhiều hơn một tác vụ, hãy chia nó thành nhiều hàm.
- Cố gắng suy nghĩ sớm và nhóm các câu lệnh bên trong một hàm giúp mã có thể tái sử dụng và theo mô-đun.