有没有办法在整数范围内匹配?我想在一定数量的字符后删除字符,并添加省略号.这是我想要做的,但不匹配1..32.
def cutoff(title) do
case byte_size(title) do
_ -> title
1..32 -> String.slice(title, 1..32) <> " ..."
end
end
Run Code Online (Sandbox Code Playgroud)
Gaz*_*ler 17
这里有两个问题:
_的数字范围之上有一个catch all子句(被忽略的变量).1..32- byte_size不会返回范围,它将返回一个整数.如果你想在一个范围内检查,那么你必须使用一个警卫.如果您交换比赛顺序并使用后卫,那么它将起作用:
def cutoff(title) do
case byte_size(title) do
x when x in 1..32 -> String.slice(title, 1..32) <> " ..."
_ -> title
end
end
Run Code Online (Sandbox Code Playgroud)
您可能还希望切片,0而不是1第一个字符不会被切断.
| 归档时间: |
|
| 查看次数: |
4215 次 |
| 最近记录: |