2014-12-22 29 views
4

在語言NIM,一個可以做以下的事情:什麼名字沒有這樣的語法有

let num = 5.add(3) 

這將是相同的

let num = add(5,3) 

所以,基本上你把之前的表達式點作爲函數的第一個參數。 我確定其他語言有這個功能,但沒有一個直接介入。

我想知道的是什麼名字這句法有

+0

它看起來像面向對象的語法。大多數語言不會讓你像這樣來回切換,你必須根據功能的類型使用其中一種。 – Barmar

+0

是的,它看起來像,但它不是。這個語法可以用於任何函數,而不僅僅是方法 – Dirk

+0

我會說它只是使用「在類型定義中聲明的方法」(引用來自以下鏈接)。如果你創建了自己的行爲,它將在C#和VB中被稱爲[擴展方法](http://en.wikipedia.org/wiki/Extension_method)。 –

回答

0

TL; DR - 統一[功能]調用語法,或任何你喜歡的,因爲有在軟件工程的,沒有穩定的被廣泛接受的術語。

值得關注的是基於對編程語言的信息,不知怎的,實現此功能:

  1. C++:該功能的最通用的名稱可能是由Herb Sutter at open-std.org paper合作與Bjarne的定義Unified Call Syntax Stroustrup作爲更進一步的C++標準的一個可能的新功能。
  2. D2:在D language,以及在和RFC for the Rust Language它被稱爲UFCSUnified Function Call Syntax)。
  3. MATLAB:在MATLAB他們don't use any specific naming爲事實的方法既可以通過function notation或通過'.' (dot) syntax調用。