0
0
Lập trình
TT

Biến Mã Thành Hành Động: Điều Khiển Luồng & Hàm trong OSE

Đăng vào 6 tháng trước

• 4 phút đọc

Chủ đề:

KungFuTech

Giới thiệu

Trong hướng dẫn trước, chúng ta đã tìm hiểu về các biến và kiểu dữ liệu - những danh từ trong ngôn ngữ lập trình. Giờ đây, đã đến lúc khám phá các động từ. Chúng ta sẽ cung cấp cho chương trình của mình một bộ não và cơ bắp bằng cách giới thiệu logic, sự lặp lại và các khối mã có thể tái sử dụng.

Bằng cách hoàn thành hướng dẫn này, bạn sẽ có khả năng kiểm soát cách chương trình của mình chạy, biến nó thành một công cụ mạnh mẽ và linh hoạt. Hãy cùng nhau khám phá các câu lệnh điều kiện, vòng lặp và hàm trong Object Sense (OSE).

1. Quyết Định: Logic Điều Kiện với if và switch

Các câu lệnh điều kiện cho phép chương trình của bạn đưa ra lựa chọn và thực thi mã khác nhau dựa trên việc một điều kiện có đúng hay không.

Cách phổ biến nhất để thực hiện điều này trong OSE là sử dụng khối if/elseif/else. Dưới đây là một ví dụ thực tế:

ose Copy
if {expr}
    // thực thi mã nếu điều kiện đúng
elseif {expr}
    // thực thi mã nếu điều kiện khác đúng
else
    // thực thi mã nếu không có điều kiện nào đúng
endif

Đối với những tình huống có nhiều lựa chọn, câu lệnh switch có thể là một giải pháp sạch sẽ hơn so với một chuỗi dài các câu lệnh if/elseif.

Ví dụ:

ose Copy
let value = 0
if value >= 1
    echo "value >= 1"
elseif value
    echo "value < 1 && value not 0"
else
    echo "value is 0"
endif

Ví dụ với switch

ose Copy
switch type(object)
    case v:t_string call object.StaticHello("Hello string.")
    case v:t_dict call object.StaticHello("This is a dictionary.")
    default echo "nothing is matched"
endswitch

2. Tự Động Hóa Các Nhiệm Vụ Lặp Lại: Giới Thiệu về Vòng Lặp

Vòng lặp là bạn đồng hành tốt nhất của bạn để tránh công việc lặp lại. Chúng cho phép bạn thực thi cùng một khối mã nhiều lần, tiết kiệm thời gian và làm cho mã của bạn trở nên sạch sẽ hơn.

Vòng lặp for

Vòng lặp for rất phù hợp để lặp qua mọi mục trong một tập hợp. Bạn có thể lặp qua một danh sách:

ose Copy
let list = [0, 1, 2, 3, 4]
for item in list
    echo item
endfor

Và bạn có thể lặp qua một từ điển để lấy cả khóa và giá trị:

ose Copy
let dict = {'x':1, 'y':2}
for [key,val] in items(dict)
    echo key . '=>' . val
endfor

Vòng lặp while

Vòng lặp while sẽ tiếp tục chạy miễn là một điều kiện nhất định đúng.

ose Copy
let i = 0
while i < 10
    if i == 5
        echo "end loop"
        break
    endif
    echo i
    let i += 1
endwhile

Bạn có thể sử dụng các từ khóa như break (để thoát khỏi vòng lặp hoàn toàn) và continue (để bỏ qua đến lần lặp tiếp theo) để kiểm soát luồng.

3. Đóng Gói Logic của Bạn: Tạo Hàm Tái Sử Dụng

Hàm là chìa khóa để tổ chức mã của bạn. Chúng cho phép bạn nhóm một tập hợp các chỉ dẫn thành một khối có tên có thể tái sử dụng.

Định Nghĩa và Gọi Hàm

Dưới đây là cú pháp cơ bản để định nghĩa một hàm. Ký tự ! chỉ ra một hàm toàn cầu.

ose Copy
function! FuncName(args?) dict?
    // mã hàm
endfunction

Ví dụ với hàm tính tổng:

ose Copy
function! Sum(x, y)
    return a:x + a:y
endfun

Để gọi hàm:

ose Copy
let sum = Sum(n1, n2) // Thành công

Hàm Lambda cho Hàm Nhanh, Vô Danh

Đối với các hàm đơn giản, bạn có thể sử dụng biểu thức lambda.

ose Copy
let RectSize = { rect -> rect.w * rect.h }

echo RectSize({"w":100,"h":200})

Closure cho Hàm Nhớ Trạng Thái

OSE hỗ trợ closures, là các hàm ghi nhớ môi trường mà chúng được tạo ra. Đây là một tính năng mạnh mẽ để tạo ra các hàm.

ose Copy
function! Counter()
    let count = 0
    function! Increment() closure
        let count += 1
        return count
    endfun
    return funcref('Increment')
endfun

4. Kết Hợp Tất Cả Lại

Hãy kết hợp những khái niệm này trong một ví dụ cuối cùng xử lý một danh sách số.

ose Copy
function! ProcessNumbers(numbers)
    let result = 0
    for num in a:numbers
        if num > 0
            let result += num
        endif
    endfor
    return result
endfun

Gọi hàm

ose Copy
let numbers = [1, -2, 3, -4, 5]

Hàm đơn giản này sử dụng một vòng lặp để lặp qua, một câu lệnh điều kiện để đưa ra quyết định và bản thân nó là một khối mã có thể tái sử dụng.

Khi bạn đã quen với các câu lệnh điều kiện, vòng lặp và hàm, bạn sẽ có bộ công cụ hoàn chỉnh để viết các chương trình thực sự, có chức năng trong Object Sense. Hãy bắt đầu lập trình ngay hôm nay!

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào