當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Ruby Comparable.clamp用法及代碼示例

本文簡要介紹ruby語言中 Comparable.clamp 的用法。

用法

clamp(min, max) → obj
clamp(range) → obj

(min, max) 形式中,如果obj <=> min 小於零,則返回min,如果obj <=> max 大於零,則返回max,否則返回obj

12.clamp(0, 100)         #=> 12
523.clamp(0, 100)        #=> 100
-3.123.clamp(0, 100)     #=> 0

'd'.clamp('a', 'f')      #=> 'd'
'z'.clamp('a', 'f')      #=> 'f'

(range) 形式中,如果obj <=> range.begin 小於零,則返回range.begin,如果obj <=> range.end 大於零,則返回range.end,否則返回obj

12.clamp(0..100)         #=> 12
523.clamp(0..100)        #=> 100
-3.123.clamp(0..100)     #=> 0

'd'.clamp('a'..'f')      #=> 'd'
'z'.clamp('a'..'f')      #=> 'f'

如果 range.beginnil ,則認為它小於 obj ,如果 range.endnil ,則認為它大於 obj

-20.clamp(0..)           #=> 0
523.clamp(..100)         #=> 100

當排除 range.end 而不是 nil 時,會引發異常。

100.clamp(0...100)       # ArgumentError

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Comparable.clamp。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。