Tôi tin rằng nó không có bất kỳ tên đặc biệt. Bạn chỉ cần truy cập phần tử đầu tiên của một mảng được trả về. Trong nhiều ngôn ngữ, không có gì đặc biệt trong một hàm trả về một mảng.
Trong trường hợp của bạn, bạn không áp dụng []
(indexing) điều hành một cuộc gọi chức năng. Thay vào đó, bạn áp dụng nó vào mảng được trả về. Với ưu tiên, nó trông như thế này.
var firstElement = (getSomeValues())[0];
Vì vậy, không có gì đặc biệt trong đó.
Tuy nhiên, có một mô hình khác nhận yếu tố đầu tiên, liên quan đến lập trình hàm. Ví dụ:
($first_value, @rest_of_list) = getSomeValues(); # Perl
let first::rest = getSomeValues() in ... (* OCaml *)
Điều này tiết kiệm giá trị đầu tiên của một danh sách (về mặt kỹ thuật, chứ không phải của một mảng) vào $first_value
, và phần còn lại được lưu trữ trong biến mảng. Biến mảng đó có thể bị bỏ qua, và sau đó bạn chỉ nhận giá trị đầu tiên.
($first_value) = getSomeValues(); # Perl
let first::_ = getSomeValues() in ... (* OCaml *)
Khái niệm chung chung hơn, trong đó có những gì trình bày ở trên chỉ là một trường hợp đặc biệt, là mô hình phù hợp với (more on pattern matching). Trong một số ngôn ngữ chức năng (không có ví dụ nào ở trên, nhưng trong Haskell, ví dụ) nó khác: nó thực sự chỉ tính toán phần tử đầu tiên, và không làm cho phần còn lại của danh sách được đánh giá.
Tuy nhiên, không có gì có thể đủ điều kiện làm mẫu phù hợp với tất cả trong mã thủ tục mà bạn đã hiển thị.
Đó là [mảng dereferencing] (http://wiki.php.net/rfc/functionarraydereferencing) và một bản sao của [phần tử mảng Truy cập từ gọi hàm trong php] (http: // stackoverflow. com/questions/2282051/access-array-element-from-function-call-in-php) – Gordon
@Gordon: trên suy nghĩ thứ hai, tôi không nghĩ rằng nó thực sự là một bản sao kể từ khi tôi hỏi những gì nó được gọi là trong khi câu hỏi đó đang hỏi tại sao nó không hoạt động trong PHP. Nhưng ồ, ít nhất tôi biết tên của nó bây giờ. – BoltClock
@BoltClock đúng, nhưng bạn nhận được câu trả lời cho bạn bằng cách đọc câu hỏi khác, vì vậy trong khi ngữ nghĩa không phải là bản sao, nó chứa đủ thông tin để trả lời câu hỏi của bạn. – Gordon