Tôi đang đấu tranh để hiểu sự khác biệt giữa: biểu tượng và văn bản: liên quan đến vị trí kết tràng. Sự hiểu biết của tôi là khi chúng ta sử dụng: biểu tượng chúng ta đang đề cập đến đối tượng này và bất cứ thứ gì nó chứa, ở đâu là văn bản: được sử dụng để gán một giá trị cho văn bản như chúng ta sẽ là một biến. Đây có phải là chính xác hoặc có thể ai đó giải thích về cách sử dụng. Cảm ơn bạn.Sự khác biệt giữa vị trí ruột kết trong: cái gì đó và cái gì đó:
Trả lời
:whatever
là một biểu tượng, bạn đã có một phần phù hợp.
Khi bạn đang sử dụng một hash, đây là cách bạn sử dụng để định nghĩa nó trong 1,8x ruby:
{:key => value, :another_key => another_value}
này được gọi là cú pháp hashrocket. Trong ruby 1.9x, điều này đã thay đổi để:
{key: value, another_key: another_value}
Có khả năng tương thích ngược mà vẫn sẽ được tải cú pháp hashrocket ... Nhưng, trong 1,9, 'chính:' là một biểu tượng
Cảm ơn bạn đã đánh giá cao! – Tom
Câu lệnh cuối cùng của bạn sẽ gây nhầm lẫn .. Tôi không nghĩ rằng 'khóa:' là một biểu tượng trong ruby, nhưng khi cú pháp này xuất hiện bên trong dấu ngoặc, ruby xác định nó là một biểu tượng. Cú pháp hashrocket không chỉ được cung cấp cho khả năng tương thích ngược. Infact, nếu bạn muốn xác định một băm với các phím không phải biểu tượng, bạn cần phải dựa vào cú pháp tên lửa băm. Tôi sẽ nói cú pháp kiểu json mới có nhiều đường cú pháp hơn. – rubyprince
các {:key => value}
là cú pháp băm cũ trong ruby, bây giờ chúng ta có một cú pháp băm mới mà là giống như json để
{:key => value}
cũng giống như
{key: value}
Một tuổi, chúng ta đều quen thuộc với là:
old_hash = {:simon => "Talek", :lorem => "Ipsum"}
này là tất cả tốt đẹp và dandy, nhưng nó có thể đơn giản hơn và sạch hơn. Kiểm tra Ruby 1.9 phong cách, nó loại giống JSON:
new_hash = {simon: "Talek", lorem: "Ipsum"}
Nhưng bây giờ bạn nhìn gần hơn và hỏi: “Nhưng trước đó chìa khóa là một biểu tượng rõ ràng, có chuyện gì với điều này bây giờ?”.
Bạn nói đúng, ký pháp mới là loại đường cú pháp cho kiểu băm thông dụng nhất, biểu tượng được gọi là đối tượng băm. Nếu bạn làm điều này trong IRB, bạn sẽ thấy ruby trả lại băm trường cũ, với các biểu tượng được sử dụng như phím:
> new_hash = {simon: "Talek", lorem: "Ipsum"}
=> {:simon=>"Talek", :lorem=>"Ipsum"}
Nếu bạn cần phải có đối tượng tùy ý như phím băm, bạn vẫn sẽ phải để làm điều đó trường học cũ.
ref: http://breakthebit.org/post/8453341914/ruby-1-9-and-the-new-hash-syntax
- 1. Bỏ trống vào một cái gì đó?
- 2. Javascript ngữ: một cái gì đó && function()
- 3. Cái gì đó tương tự như split()?
- 4. regex để kết hợp một cái gì đó nếu nó không được bắt đầu bởi cái gì khác
- 5. Cách tạo một cái gì đó trong PowerShell
- 6. Có cái gì đó giống như Python 'với' trong C#?
- 7. Có cái gì đó giống như WMI cho Linux?
- 8. Có cái gì đó giống như `last` cho` map`?
- 9. giải nén chuỗi bắt đầu với và kết thúc với một cái gì đó trong C#
- 10. 'NHƯ (' %% này 'OR '% rằng%') và một cái gì đó = khác' không làm việc
- 11. Tôi cần một cái gì đó như "using Base :: *;"
- 12. Sự khác biệt giữa Đơn vị và Không có gì?
- 13. Tên ADT. `Trái a` là gì, và sau đó cái gì là` a`, trong Haskell?
- 14. JPQL, Cách KHÔNG chọn một cái gì đó
- 15. Một cái gì đó như tăng :: multi_index cho Python
- 16. Một cái gì đó như jQuery.extend() nhưng độc lập?
- 17. một cái gì đó về phương pháp dealloc
- 18. Một cái gì đó như Tryparse từ Convert.FromBase64String
- 19. Có cái gì đó giống như Incanter cho Haskell?
- 20. Một cái gì đó như JsFiddle cho VBScript?
- 21. Cách tạo bot trên web? (hoặc một cái gì đó)
- 22. Làm thế nào để dán một cái gì đó giữa các thẻ html trong Vim?
- 23. javascript, đợi cho một cái gì đó là đúng sau đó chạy hành động
- 24. Sự khác biệt giữa Array() và [] trong Javascript là gì và tại sao tôi nên sử dụng cái kia?
- 25. MySQL CHỌN TRƯỜNG HỢP KHI một cái gì đó sau đó trở về vô
- 26. SortedList được lập chỉ mục bởi một cái gì đó khác với Khóa
- 27. Sự khác biệt giữa crontab và cronjob là gì?
- 28. Sự khác biệt giữa #import và @class là gì và khi nào tôi nên sử dụng cái kia?
- 29. Sự khác biệt giữa DBI và DBD là gì?
- 30. Sự khác biệt giữa "new A()" và "A.newInstance()" là gì?
Symbol: Giá trị chỉ xuất hiện trong biểu băm như một cách để rút ngắn nó nhưng tôi không tìm thấy nhiều người ủng hộ nó. – texasbruce