Thứ Ba, 18 tháng 9, 2018

Hàm Và Biến

Hàm

Để định nghĩa một hàm chúng ta sử dụng cấu trúc như sau:

def function_name
    # code goes here
end

Xem ví dụ sau:

def greet
    puts "Hello"
end

Giá Trị Trả Về

Thác với các ngôn ngữ khác, trong Ruby hàm luôn trả về giá trị khi nó được gọi. Bạn có thể sử dụng từ khóa return hoặc nếu không có từ khóa này trong hàm thì Ruby sẽ lấy giá trị được ước lượng của câu lệnh cuối cùng trong hàm. Ví dụ:

def test1
    3
end
p test1

def test2
    print "Hello"
end
p test2

Trong ví dụ thứ 2, chúng ta thấy kết quả hiển thị là giá trị nil. Trường hợp này do biểu thức print "Hello" được Ruby ước lượng về giá trị là nil. Ở đây chúng ta cũng sử dụng hàm p thay vì print, sử dụng p thì giá trị nil sẽ vẫn được hiển thị.

Tham Số và Đối Số

Một hàm có thể có tham số, tham số được sử dụng để đưa dữ liệu vào bên trong hàm. Ví dụ dưới, ab được gọi là tham số của hàm sum:

def sum(a, b)
    a + b
end

Khi gọi hàm sum, bạn cần cung cấp 2 giá trị thực tế cho tham số ab. 2 giá trị này được gọi là đối số:

puts sum(2, 3)

Biến

Biến được dùng để lưu dữ liệu khi chạy chương trình. Giá trị của biến có thể thay đổi trong quá trình chạy trương trình.

price = 500 puts price price += 10 puts price

Khi một biến được định nghĩa trong một hàm thì phạm vi của biến này chỉ giới hạn bên trong hàm đó.

def variable_scope
    price = 5
end
variable_scope
puts price

Kết quả của đoạn mã trên:

fn.rb:6:in `<main>': undefined local variable or method `price' for main:Object (NameError)

Tương tự, khi một biến được định nghĩa ở ngoài hàm thì nó cũng ko thể được sử dụng bên trong hàm.

price = 5
def variable_scope
    puts price
end

variable_scope

Kết quả hiển thị của đoạn code trên:

fn.rb:5:in `variable_scope': undefined local variable or method `price' for main:Object (NameError)
        from fn.rb:7:in `<main>'

Tuy nhiên khi sử dụng biến global (toàn cục) thì bạn có thể sử dụng được nó bên trong hàm ngay cả khi nó không được khởi tạo bên trong hàm:

$price = 5
def variable_scope
    puts $price
end

variable_scope

Ngược lại khi một biến được khởi tạo trong hàm là biến global thì khi hàm được gọi, biến này sẽ tồn trại trong phạm vi ngoài hàm:

def variable_scope
    $price = 5
end
variable_scope
puts $price

Nguồn: CodeHub.vn

Không có nhận xét nào:

Đăng nhận xét

Bài Viết Nổi Bật

Thẻ Đề Mục

Các thẻ đề mục (còn gọi là thẻ heading) dùng để đánh dấu các đề mục của trang web. Ví dụ sau sử dụng thẻ <h1> để tạo một đề mục: ...

Được Xem Nhiều