我目前正在創建一個包裝食譜,同時試圖通過使用Rubocop和Foodcritic來限制自己的正確格式。不過,我不斷收到以下錯誤:引號和廚師屬性中冒號之間的區別是什麼?
Use strings in preference to symbols to access node attributes
和
Access node attributes in a consistent manner
這使我想知道,是否有冒號和引號之間的區別嗎?
我目前正在創建一個包裝食譜,同時試圖通過使用Rubocop和Foodcritic來限制自己的正確格式。不過,我不斷收到以下錯誤:引號和廚師屬性中冒號之間的區別是什麼?
Use strings in preference to symbols to access node attributes
和
Access node attributes in a consistent manner
這使我想知道,是否有冒號和引號之間的區別嗎?
是......冒號用於定義符號,而串由引號定義...所以:
是命名變量1
:'variable is 1'
一個符號,一個象徵
'variable1'
- 是一個字符串
"variable#{1}"
- 是一個可以在其中定義變量的字符串。雙引號解釋字符串,而單引號使用字符串。
和
「variable1'.to_sym是一樣的:變量1
正如Sid的答覆中提到,:foo
是一個符號,而"foo"
和'foo'
都是字符串。對於節點屬性,我們會自動爲您轉換事物,以便兩種樣式都可以工作Foodcritic規則是爲了確保所有Chef代碼中的一致風格。如果您沒有理由不這樣做,我們建議使用字符串樣式,因爲引用的字符串在很多編程語言中都很常見,所以更少用Ruby流利的讀者來理解。