默認情況下,ruby傳遞對象類型的原始值和引用的副本。如何將primitive
類型變量(例如:整數,浮點數)的引用傳遞給函數?將原始數據類型的引用傳遞給ruby中的函數
1
A
回答
4
Ruby沒有按引用傳遞參數:
def change(x)
x = 2 # this assigns to a local variable 'x'
end
a = 1
change(a)
a #=> 1
你可以通過一個可變的對象,而不是如散列「含有」整數:
def change(h)
h[:x] = 2
end
h = {x: 1}
change(h)
h[:x] #=> 2
3
Ruby不能這樣工作。沒有指針,如果這就是你的意思和它。參數通過值傳遞,但這些值本身是對內存中對象的引用。
你稱之爲「原語」(例如值爲1
)實際上是Ruby中的不可變對象,因此指向它們是沒有意義的。傳遞一個包含該對象的變量是一條路。
我很好奇你想達到什麼。
相關問題
- 1. 將原始數據類型傳遞到函數參數
- 2. 將參數傳遞給原型函數
- 3. 我可以將非原始數據類型傳遞給WebMethod嗎?
- 4. 在JNI中通過引用傳遞原始數據類型
- 5. javascript中的原始數據類型和引用數據類型
- 6. 將參數傳遞給JavaScript中的原型函數?
- 7. 將參數傳遞給javascript中的原型函數
- 8. 將函數引用傳遞給C指針類型,C將調用函數
- 9. 將參數傳遞給函數引用?
- 10. 將void *類型傳遞給main()函數
- 11. 將Scala類型傳遞給函數
- 12. 將泛型類傳遞給java函數?
- 13. 將數據類型傳遞給函數vs oop方法調用
- 14. 在C++函數中傳遞原始數據類型的最佳做法
- 15. PHP中的原始數據類型是否通過引用傳遞?
- 16. 將函數傳遞給Swift中的類
- 17. 將函數傳遞給Python中的類
- 18. 將函數引用傳遞給該函數中的結構體
- 19. 將數據作爲原始數據傳遞給打印機
- 20. Java - 引用原始數據類型?
- 21. 獲取原始類型傳遞給Ruby腳本
- 22. 如何將引用傳遞給函數
- 23. 將對象引用傳遞給函數
- 24. 將變量傳遞給引用函數?
- 25. 將'this'引用傳遞給Backbone函數
- 26. 如何將原始數據傳遞給asp.net核心中間件
- 27. 將基類的引用傳遞給另一個函數
- 28. 將數組引用傳遞給scala中的函數
- 29. 如何將類型DATE的參數傳遞給函數
- 30. 將不同類型的數組傳遞給UDF函數
Thanx。我想要一個原始類型的指針。那麼我是否必須將原始類型放入包裝類中並傳遞包裝的引用? 在ruby中沒有任何內置的原始類型的包裝類型? (例如:int Integer for int,Double for double) – Lahiru
@Lahiru Ruby中沒有原始類型,'1'是一個對象。也許你應該提供一個例子。你想做什麼? – Stefan
@Lahiru - 在java中'Integer'和'Double'是包裝,但不可變,所以他們無法幫助你做任何你想做的事情...... –