2011-09-06 67 views

Trả lời

3

Theo truyền thống trong ngôn ngữ lập trình, tham số xác định đầu vào cho hàm mà hàm được khai báo. Đối số là các giá trị được cung cấp khi gọi hàm. Đối số các giá trị ánh xạ tới các tham số hàm. Bạn có thể đọc thêm về điều này trên Wikipedia.

+0

Tôi đã nói rằng trong câu trả lời của tôi là tốt, nhưng tôi cho rằng OP yêu cầu sự khác biệt giữa param và args từ cơ thể câu hỏi – manojlds

9

Bạn đang nói về tham số được xác định với param và các đối số được truy cập thông qua $args?

Nói chung, tham số là biến là một phần của chữ ký của phương thức (khai báo phương thức). Đối số là một biểu thức được sử dụng khi gọi phương thức.

Nhưng với mục đích phân biệt paramargs, bạn có thể xem xét trước đây là xác định tham số có thể được chuyển đến tập lệnh (hoặc hàm vv) bằng cách sử dụng tên tham số và cung cấp giá trị của nó (đối số được đặt tên) hoặc đối số vị trí xác định chỉ có giá trị và sau khi truy cập vào đối số vị trí vượt trội so với các thông số mong đợi của các kịch bản theo quy định tại param

Hãy xem xét kịch bản có tên test.ps1 sau:

param($param1,$param2) 

write-host param1 is $param1 
write-host param2 is $param2 

write-host arg1 is $args[0] 
write-host arg2 is $args[1] 

và giả sử tôi gọi là kịch bản như:

.\test.ps1 1 2 3 4

tôi sẽ nhận được kết quả:

param1 is 1 
param2 is 2 
arg1 is 3 
arg2 is 4 

này tương đương với gọi nó như:

.\test.ps1 -param1 1 -param2 2 3 4 

hoặc thậm chí

.\test.ps1 3 4 -param2 2 -param1 1 
Các vấn đề liên quan