2011-05-26 67 views

回答

10

是的,有。這是什麼'='幫助頁說:

運營商< - 和=分配到 環境中,他們 評估。操作者< - 可用於 的任何地方,而運算符=是 只允許在頂層(例如, 在 命令提示輸入的完整表達)中的 一個支撐列表或 子表達式爲一體表達式。

「可以使用」的幫助文件意味着在這裏分配一個對象。在一個函數調用中,您不能分配一個對象=,因爲=意味着在那裏分配參數。

基本上,如果您使用<-,那麼您將分配一個變量,您可以在當前環境中使用該變量。例如,考慮:

matrix(1,nrow=2) 

這只是一個2行矩陣。現在考慮:

matrix(1,nrow<-2) 

這也爲您提供了一個兩行矩陣,但現在我們也有一個名爲nrow的對象,結果爲2!發生了什麼事是在第二次使用時,我們沒有分配參數nrow 2,我們分配了一個對象nrow 2並將其發送到第二個參數matrix,這恰好是nrow。

編輯:

至於編輯的問題。兩者都是一樣的。使用=<-可能引起很多討論,哪一個最好。許多風格指南提倡<-,我同意這一觀點,但請保留<-作業的空間,否則他們可能變得很難解釋。如果你不使用空格(你應該,除了在twitter上),我更喜歡=,並且從不使用->

但是,只要您選擇的是一致的,那麼使用什麼並不重要。在一行上使用=,在下一行上使用<-會產生非常難看的代碼。

+0

這個解釋要比這個問題的其他重複+1好得多。 – 2017-05-19 14:29:07

相關問題