处理单字符字符串 - 在函数中还是在其调用者中? ssr()
Handling single-character strings - in a function or in its caller? ssr()
在 q
中使用字符串的常用方法是什么,在某种程度上,谁负责处理单字符字符串:函数本身还是运行它的用户?
例如:
$ q
KDB+ 3.6 2019.04.02 Copyright (C) 1993-2019 Kx Systems
m32
q)ssr["bar";"r";"z"] /looks good at a first glance
"baz"
q)ssr["bar";"?";"z"] /but wait, nothing happens here
"bar"
q)ssr["bar";(),"?";"z"] /convert 1-char to list: ok
"zzz"
查看发送单个字母 (r
) 与发送问号 (?
) 的区别。仅仅发送一个字符 ?
本身并没有做任何有用的事情。
它是ssr
的特征吗?单字符的一般情况是什么 sending/receiving - 在大多数情况下谁应该负责处理原子与列表?
更新:
感谢@terrylynch 指出 ss
/ssr
:
的这个特性
q)ssr["bar?";"?";"z"]
"barz"
它是 ss
的一个特性,这又使它成为 ssr
的一个特性,因为 ssr
使用 ss
。见 "supports some of the pattern-matching capabilities of like" 评论:https://code.kx.com/q/ref/ss/
看起来它检查了特殊(与正则表达式相关的)字符的查找 char/string - 如果它是单个字符,则将其视为字符,如果它是字符串类型,则将其视为正则表达式模式。
在 q
中使用字符串的常用方法是什么,在某种程度上,谁负责处理单字符字符串:函数本身还是运行它的用户?
例如:
$ q
KDB+ 3.6 2019.04.02 Copyright (C) 1993-2019 Kx Systems
m32
q)ssr["bar";"r";"z"] /looks good at a first glance
"baz"
q)ssr["bar";"?";"z"] /but wait, nothing happens here
"bar"
q)ssr["bar";(),"?";"z"] /convert 1-char to list: ok
"zzz"
查看发送单个字母 (r
) 与发送问号 (?
) 的区别。仅仅发送一个字符 ?
本身并没有做任何有用的事情。
它是ssr
的特征吗?单字符的一般情况是什么 sending/receiving - 在大多数情况下谁应该负责处理原子与列表?
更新:
感谢@terrylynch 指出 ss
/ssr
:
q)ssr["bar?";"?";"z"]
"barz"
它是 ss
的一个特性,这又使它成为 ssr
的一个特性,因为 ssr
使用 ss
。见 "supports some of the pattern-matching capabilities of like" 评论:https://code.kx.com/q/ref/ss/
看起来它检查了特殊(与正则表达式相关的)字符的查找 char/string - 如果它是单个字符,则将其视为字符,如果它是字符串类型,则将其视为正则表达式模式。