Cách định nghĩa và gọi hàm

Ngày đăng: 21/11/2023   -    Cập nhật: 28/11/2023

Hàm là một khối mã có thể được gọi lại nhiều lần trong chương trình, sử dụng hàm giúp tăng tính tái sử dụng và tổ chức code. Trong bài viết này, chúng ta sẽ tìm hiểu cách định nghĩa và gọi hàm trong lập trình.

Cách định nghĩa hàm trong ngôn ngữ lập trình


 

Để định nghĩa một hàm, chúng ta cần khai báo tên hàm, danh sách tham số (nếu có) và khối mã của hàm. Cú pháp định nghĩa hàm trong một số ngôn ngữ lập trình phổ biến:


Java

<kiểu trả về> <tên hàm>(<danh sách tham số>) {

  // Khối mã của hàm 

}

Ví dụ:


int tinhTong(int a, int b) {

  return a + b;

}

C/C++

<kiểu trả về> <tên hàm>(<danh sách tham số>) {

  // Khối mã của hàm

}

Ví dụ:


int tinhTong(int a, int b) {

  return a + b; 

}


Python

def <tên hàm>(<danh sách tham số>):

  # Khối mã của hàm

  

Ví dụ:


def tinhTong(a, b):

  return a + b

JavaScript

function <tên hàm>(<danh sách tham số>) {

  // Khối mã của hàm

}

Ví dụ:


function tinhTong(a, b) {

  return a + b;

}

Như vậy, cú pháp định nghĩa hàm trong các ngôn ngữ lập trình khá là tương đồng. Chúng ta cần khai báo tên hàm, danh sách tham số (nếu có) và khối mã bên trong hàm.

Các loại tham số trong hàm


 

Có hai loại tham số chính trong hàm:

  • Tham số bắt buộc: Là tham số mà người gọi hàm bắt buộc phải truyền vào. Nếu không truyền tham số này vào thì sẽ báo lỗi.
  • Tham số mặc định: Là tham số có giá trị mặc định, người gọi hàm có thể không truyền giá trị vào tham số này. Nếu không truyền giá trị vào thì tham số sẽ nhận giá trị mặc định đã khai báo.

Ví dụ về hàm có cả hai loại tham số trong Python:


def tinh_dien_tich(chieu_dai, chieu_rong, don_vi = 'm'):

  dien_tich = chieu_dai * chieu_rong

  

  if don_vi == 'm':

    return dien_tich 

  elif don_vi == 'cm':

    return dien_tich * 100

Trong đó chieu_dai và chieu_rong là tham số bắt buộc, còn don_vi là tham số mặc định có giá trị là 'm'.


Việc sử dụng tham số mặc định giúp tăng tính linh hoạt của hàm, tránh báo lỗi khi người dùng không truyền đủ tham số.


Cách gọi hàm trong chương trình

Để gọi một hàm, chúng ta sử dụng tên hàm và truyền tham số vào (nếu có). Cú pháp gọi hàm:


<tên hàm>(<danh sách tham số>)

Ví dụ gọi hàm tinhTong ở trên trong Python:


a = 1

b = 2


tong = tinhTong(a, b) 


print(tong) # in ra 3

Lưu ý rằng khi gọi hàm, thứ tự và kiểu dữ liệu của tham số truyền vào phải khớp với định nghĩa hàm.


Ngoài ra, có một số cách gọi hàm nâng cao hơn:


  • Gọi hàm với tên tham số rõ ràng cho dễ đọc:
  • tong = tinhTong(a=1, b=2) 
  • Gọi hàm với số lượng tham số không cố định (chỉ áp dụng cho một số ngôn ngữ như Python):
  • danh_sach = [1, 2, 3]
  • tong = tinhTong(*danh_sach)
  • Lưu hàm vào biến rồi gọi:
  • tinh_tong = tinhTong
  • tong = tinh_tong(1, 2)

Như vậy, cách gọi hàm cơ bản là sử dụng tên hàm và truyền tham số. Tùy ngôn ngữ, chúng ta có thể linh hoạt gọi hàm theo nhiều cách khác nhau.

Sử dụng các thư viện hàm có sẵn

Các ngôn ngữ lập trình thường cung cấp sẵn nhiều thư viện hàm tiện ích cho các tác vụ phổ biến như:


  • Xử lý chuỗi
  • Làm việc với ngày tháng
  • Xử lý file, thư mục
  • Vẽ đồ họa
  • Giao tiếp mạng
  • ...

Thay vì tự code lại các hàm này, chúng ta có thể sử dụng các hàm có sẵn trong thư viện để tiết kiệm thời gian, công sức.


Ví dụ sử dụng hàm randint() trong thư viện random của Python để sinh số ngẫu nhiên:


from random import randint


ngau_nhien = randint(0, 100) 


Hầu hết các thư viện hàm tiêu chuẩn đều được tích hợp sẵn trong ngôn ngữ lập trình, giúp lập trình viên tập trung vào phần mã chính thay vì code lại các tác vụ cơ bản. Do đó, việc tìm hiểu và sử dụng thành thạo các thư viện hàm có sẵn là kỹ năng cần thiết của một lập trình viên.

Phân biệt giữa hàm và phương thức

Hàm là khối mã độc lập, không liên kết với đối tượng nào.

Phương thức là hàm thuộc về một lớp/đối tượng nào đó. Phương thức mô tả hành vi của đối tượng.

Ví dụ:


# Hàm 

def tinh_tong(a, b):

  return a + b


# Phương thức

class Person:

  def getName(self):

    return self.name


p = Person() 

p.getName() # gọi phương thức getName() của đối tượng p


Như vậy:

  • Hàm độc lập, không cần khởi tạo đối tượng mà có thể gọi.
  • Phương thức cần phải thông qua một đối tượng mới có thể gọi.
  • Tuy nhiên, trong một số ngôn ngữ (như Python), ranh giới giữa hàm và phương thức không rõ ràng. Chúng ta có thể gọi phương thức mà không cần tạo đối tượng.

Kết luận: nhìn chung, hàm và phương thức đều là các khối mã có thể tái sử dụng. Sự khác biệt chính là phương thức gắn liền với một lớp/đối tượng, còn hàm thì độc lập.


Bình luận Facebook
Khóa học liên quan đến bài viết

KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS

56 giờ
Học Lập trình Front end hiện đại với ReactJS. Học làm chủ HTML, CSS, JS và thư viện JavaScript phổ biến nhất hiện nay. Sẵn sàng đi thực tập / đi làm ngay sau khóa học.

Khóa học PHP Full stack [2023] cho người mới bắt đầu

96 giờ
Khóa học Lập trình PHP Full stack, phiên bản cập nhật lần thứ 8. Dạy Lập trình PHP bài bản từ Front end đến Back end + Laravel. Hướng dẫn làm 2 Dự Án Web lớn

KHÓA HỌC LẬP TRÌNH PHP WEB

54 giờ
NIIT - ICT Hà Nội cung cấp Khóa học Lập trình Web Fullstack với PHP, phiên bản cập nhật lần thứ 5 (T8/2019). Dạy Lập trình PHP bài bản, chi tiết (từ Front-end đến Back-end)

KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG

50 giờ
Khóa học giúp học viên sử dụng thành thạo ngôn ngữ Lập trình Python (3x). Hiểu và phát triển được Ứng dụng Web với Django Framework. Học thực hành với Giảng viên cao cấp.

Khóa học Java Full stack (IJFD)

104 giờ
Học lập trình Java Fullstack với khóa học được xây dựng theo lộ trình bài bản, từ JAVA CƠ BẢN đến JAVA WEB và nâng cao về JAVA FRAMEWORK như: Spring Boot, Hibernate
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!