[英]How do I pass multiple arguments to a Ruby method using |
我看到了該方法獲取參數的方式,並想知道如何復制它。
Ruby / OpenGL:
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
我嘗試了這個:
def my_method(*args)
puts args
end
my_method(0 | 1) #=> 1
但這行不通。 感謝您的閱讀!
鏈接查看方法。
|
是位或參數。 GL_COLOR_BUFFER_BIT
和GL_DEPTH_BUFFER_BIT
是積分常數( 0x00004000
和0x00000100
,分別地),並且該操作的結果為0x00000500
。 這就是傳遞給glClear
-一個數字,而不是多個參數。
可以使用&
(位與)運算符從整數中挑出位。 例如
WRITE = 1
READ = 2
FORCE = 4
def my_method(code)
puts "write" if code & WRITE != 0
puts "read" if code & READ != 0
puts "force" if code & FORCE != 0
end
my_method(READ | FORCE)
# => read
# => force
這在Ruby中不是很常見,因為我們有更好和更清晰的方式來做類似的事情(例如,可能會說my_method(:read, force: true)
更清晰,並且使用起來肯定更簡單)。 但是,這在C語言中是非常標准的,而Ruby OpenGL在C函數中是很薄的包裝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.