Khi xác định hàm, có phải luôn luôn khuyến nghị sử dụng phạm vi s:
để đặt nó cục bộ vào tập lệnh và tránh ghi đè một hàm có cùng tên trong không gian tên toàn cục không?
Và nó có luôn được khuyến nghị sử dụng đối số abort
trong trường hợp hàm phát hiện lỗi không?
function! s:SomeFunction() abort
echo "hello world!"
endfunction
Phạm vi s:
có vẻ là một điều tốt, nhưng nó làm cho mã dài hơn một chút, bởi vì mỗi lần tôi muốn gọi SomeFunction()
từ một ánh xạ, tôi phải thêm tiền tố vào <SID>
:
nnoremap {lhs} :<c-u>call <SID>SomeFunction()<cr>
Hoặc thậm chí để lưu trữ đầu ra của nó bên trong một biến:
let myvar = <SID>SomeFunction()
Có một số trường hợp cụ thể mà bạn không muốn sử dụng s:
và / hoặc abort
?
Nếu vậy, vì lý do gì?
abort
và sử dụngtry
/finally
cho bất kỳ sự cố nào. đây không phải là trường hợp à?