我正在尝试将字符串附加到现有字符串。 我在这里遇到了this线程解释了它。 仅供参考,我将从该页面粘贴内容
let (^$) c s = s ^ Char.escaped c (* append *)
let ($^) c s = Char.escaped c ^ s (* prepend *)
现在我想知道(^$)
在
let (^$) c s = s ^ Char.escaped c (* append *)
这里的This页面说明了
operator ^ is for string concatenation
什么是(^ $)?
答案 0 :(得分:3)
@icktoofay是正确的,这段代码:
let (^$) c s = s ^ Char.escaped c
正在定义一个新的运算符^$
。
通过将运算符括在括号中,可以将运算符用作普通(前缀)函数名。而且,实际上,这是您在定义运算符时所执行的操作。
$ ocaml
OCaml version 4.02.1
# (+) 44 22;;
- : int = 66
# let (++++) x y = x * 100 + y;;
val ( ++++ ) : int -> int -> int = <fun>
# 3 ++++ 5;;
- : int = 305
OCaml中的中缀运算符以类似运算符的字符=<>@^|&+-*/$%
之一开头,然后可以包含任意数量的类似运算符的字符!$%&*+-./:<=>?@^|~
。因此,您可以拥有中缀运算符$^
或$^??@+
,依此类推。
请参阅OCaml手册的Section 6.1。
答案 1 :(得分:1)
通过转义:
将给定字符附加到字符串'x' ^$ "hello" ----> "hellox"
'\n' ^$ "hello" ----> "hello\\n"