Julia:star符号中的Unicode字符

Julia:star符号中的Unicode字符,unicode,julia,Unicode,Julia,我正在尝试使用一些unicode字符简化几个函数中的表示法。在其中一个函数中,我尝试使用星号(\star),但出现了几个错误和警告 请查看以下工作示例: a = [1 2 3; 4 5 6; 7 8 9] -给出:一个3×3数组{Int64,2} a⋆ = [1 2 3; 4 5 6; 7 8 9] -给出:错误:语法:意外“=” 如上所述使用星形符号时,为什么不起作用?它在Julia中有设计好的功能吗?代码>⋆符号解析为中缀运算符: julia> dump(parse("a⋆b"))

我正在尝试使用一些unicode字符简化几个函数中的表示法。在其中一个函数中,我尝试使用星号(\star),但出现了几个错误和警告

请查看以下工作示例:

a = [1 2 3; 4 5 6; 7 8 9]
-给出:一个3×3数组{Int64,2}

a⋆ = [1 2 3; 4 5 6; 7 8 9]
-给出:错误:语法:意外“=”


如上所述使用星形符号时,为什么不起作用?它在Julia中有设计好的功能吗?

代码>⋆符号解析为中缀运算符:

julia> dump(parse("a⋆b"))
Expr
  head: Symbol call
  args: Array{Any}((3,))
    1: Symbol ⋆
    2: Symbol a
    3: Symbol b
  typ: Any

允许
作为标识符名称中的一个字符,但这将是一个突破性的变化,到目前为止,我们通常将Unicode标准中通常被视为类似运算符的字符解析为具有适当优先级的运算符。

Julia关于有效标识符字符的部分告诉了您什么?我不清楚。我以前看过那个部分。首先,它说:“唯一被明确禁止的变量名称是内置语句的名称”。关于unicode sm字符(作为星型符号),它说它们“也是有效的标识符,但经过特殊解析。在某些上下文中,运算符可以像变量一样使用”。我不清楚星型符号是否仅用于用户定义的方法。当我去寻找时(我以前从未听说过Julia),就是这样。听起来(在这方面)比典型的编程语言更复杂。。。我想看看Unicode类别U+22C6是什么(⋆) 是的,但不幸的是unicode.org上的已关闭(我不清楚这是永久性的还是临时性的).但是代码表上说这是一个数学符号,所以…谢谢@StefanKarpinski,这是我想知道的。我认为没有必要创建一个例外。也许给下标或上标更多的灵活性会更好,可能会消除使用星号或类似符号的优势。但是,我不知道有多困难和/或有多大价值可在一般情况下使用。下标Unicode可用于标识符,例如
v₁ = 10.0
,但没有键盘快捷键(可能会修正此剪切(可能是\1)。复制粘贴到REPL对我很有用。