变量

Julia 语言中,变量是与某个值相关联(或绑定)的名字。你可以用它来保存一个值(例如某些计算得到的结果),供之后的代码使用。例如:

julia> # 将 1 赋值给变量 x

julia> x = 1

1

julia> # 使用 x 的值做计算

julia> x + 1

2

julia> # 重新给 x 赋值

julia> x = x + 2

3

julia> #此时,x的值已经改变

julia> x

3

julia> # 也可以给 x 赋其它类型的值, 比如字符串文本

julia> x = "Hello World!"

"Hello World!"

Julia 提供了非常灵活的变量命名策略。变量名是大小写敏感的,且不包含语义,也就是说,Julia 不会根据变量的名字来区别对待它们。

julia 是为了科学计算而专门设计的语言,所以,它能够很轻松地输入数学符号。在 Julia REPL 和一些其它的 Julia 编辑环境中,很多 Unicode 数学符号可以使用反斜杠加 LaTeX 符号名再按 tab 健打出。 例如:变量名 δ 可以通过 delta tab 来输入,甚至可以用 alpha tab hat tab _2 tab 来输入 α̂₂ 这种复杂的变量名。 如果你在某个地方(比如别人的代码里)看到了一个不知道怎么输入的符号,你可以在REPL中输入 ?,进入帮助模式。然后粘贴那个符号,帮助文档会告诉你输入方法。(注意,如果你的编辑环境不支持该符号,则输入的符号可能不会显示出来或者是乱码)

合法的变量名

变量名字必须以英文字母(A-Z 或 a-z)、下划线或编码大于 00A0 的 Unicode 字符的一个子集开头。 具体来说指的是,Unicode字符分类中的 Lu/Ll/Lt/Lm/Lo/Nl(字母)、Sc/So(货币和其他符号)以及一些其它像字母的符号(例如 Sm 类别数学符号中的一部分)。 变量名的非首字符还允许使用惊叹号 !、数字(包括 0-9 和其他 Nd/No 类别中的 Unicode 字符)以及其它 Unicode 字符:变音符号和其他修改标记(Mn/Mc/Me/Sk 类别)、标点和连接符(Pc 类别)、引号和少许其他字符。

像 + 这样的运算符也是合法的标识符,但是它们会被特别地解析。 在一些语境中,运算符可以像变量一样使用,比如 (+) 表示加函数,语句 (+) = f 会把它重新赋值。 大部分 Sm 类别中的 Unicode 中缀运算符,像 ⊕,则会被解析成真正的中缀运算符,并且支持用户自定义方法(举个例子,你可以使用语句 const ⊗ = kron 将 ⊗ 定义为中缀的 Kronecker 积)。 运算符也可以使用修改标记、引号和上标/下标进行加缀,例如 +̂ₐ″ 被解析成一个与 + 具有相同优先级的中缀运算符。

如果有需要的话,Julia 甚至允许你重定义内置常量和函数。(这样做可能引发潜在的混淆,所以并不推荐)

julia> pi = 33julia> pi3julia> sqrt = 44

然而,如果你试图重定义一个已经在使用中的内置常量或函数,Julia 会报错:

julia> piπ = 3.1415926535897...julia> pi = 3ERROR: cannot assign variable MathConstants.pi from module Mainjulia> sqrt(100)10.0julia> sqrt = 4ERROR: cannot assign variable Base.sqrt from module Main

内置语句的名字是唯一明确被禁止使用的变量名。

命名规范

虽然 Julia 语言对合法名字的限制非常少,但是遵循以下这些命名规范是非常有用的:

  • 变量的名字采用小写。
  • 用下划线(_)分隔名字中的单词,但是不鼓励使用下划线, 除非在不使用下划线时名字会非常难读。
  • 类型(Type)和模块(Module)的名字使用大写字母开头,并且用大写字母 而不是用下划线分隔单词。
  • 函数(Function)和宏(Macro)的名字使用小写,不使用下划线。
  • 会对输入参数进行更改的函数要使用 ! 结尾。这些函数有时叫做 “mutating” 或 “in-place” 函数,因为它们在被调用后,不仅仅会返回一些值 还会更改输入参数的内容。

julia const报错_我爱Julia之入门-004相关推荐

  1. python外星人入侵游戏run_game报错_《python编程从入门到实践》书中的外星人入侵小游戏报错...

    使用该书发布的附件中的参考代码在Pyhton3.7 Pycharm2019.2.4(最新版本)的环境下运行,出现报错如下: Traceback (most recent call last): Fil ...

  2. c++ 模板参数做容器参数迭代器报错 vectorT::const_iterator,typename const报错

    错误1: template<class T> void temp(std::vector<T>& container) {         std::vector< ...

  3. Julia:报错 no method matching increment_deriv!(::Float64, ::Float64)

    该报错参考:https://discourse.julialang.org/t/diffeqflux-an-error-when-using-nns-that-take-both-time-and-p ...

  4. iview admin npm install报错_聊聊NPM镜像那些险象环生的坑

    作者:JowayYoung 仓库:Github.CodePen 博客:掘金.思否.知乎.简书.头条.CSDN 公众号:IQ前端 联系我:关注公众号后有我的微信哟 特别声明:原创不易,未经授权不得对此文 ...

  5. 闪退没由报错_秉承工匠精神,3步定位飞桨报错原因,你也来试试?

    点击左上方蓝字关注我们 [故事的开始-]小张是一名AI算法攻城狮,听闻飞桨乃国产开源深度学习框架之光,心想炎黄子孙当自强,用自己的深度学习框架,实现中国的AI梦--他尝试在的笔记本上使用飞桨搭建线性回 ...

  6. 中引入文件报错_关于前端开发中的模块化

    前端开发离不开模块化,与模块化有关的关键字有以下几个: require/module.exports export/import define/require/exprots define/seajs ...

  7. springboot导入项目依赖报错_最详细的 Spring Boot 多模块开发与排坑指南

    来源于公众未读代码 , 作者达西呀 创建项目 创建一个 SpringBoot 项目非常的简单,简单到这里根本不用再提.你可以在使用 IDEA 新建项目时直接选择 Spring Initlalize 创 ...

  8. npm 全局安装vuecli报错_前端脚手架CLI生成模版命令工具(包括,npm包的发布,脚手架的搭建,注意事项,优化等)...

    NodeJs的出现,让前端工程化的理念不断深入,正在向正规军靠近.先是带来了Gulp.Webpack等强大的构建工具,随后又出现了vue-cli和create-react-app等完善的脚手架,提供了 ...

  9. python运行报错_请教大神python运行书上源码报错,请指点,谢谢

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 源码:# coding: utf-8 import sys, os sys.path.append(os.pardir) # 为了导入父目录的文件而进行的 ...

最新文章

  1. 包含近 20 万本图书,OpenAI 级别的训练数据集上线
  2. 解决文件上传时,服务器中中文文件名乱码问题
  3. centos7.3挂在移动硬盘(亲测)
  4. Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之10.Web_工程结构
  5. x86虚拟机NXVM_Centos6.5 x86_64系统安装kvm虚拟机—基础篇
  6. Centos7设置Tomat开机自启
  7. JavaScript---Ajax和函数回调,异步编程
  8. 异步复位的串联T触发器
  9. AcWing 320. 能量项链
  10. VS2013常用快捷键设置
  11. 自定义Hibernate Validator规则注解
  12. 动态生成li 根据后台返回个数动态生成li
  13. wiznote can't networking
  14. IE11修复-Win7安装IE11无法打开怎么办
  15. 快速了解Spyder
  16. 【STM32f401学习之路-02】USART串口通信
  17. Oracle AutoVue 文件查看器Server服务器版安装及要求
  18. php 文本域,关于使用文本域(TextArea)的一个问题
  19. 香港服务器要个人信息么,香港个人信息应当遵循服务器23.225合法
  20. 网页整体放大/缩小的实现

热门文章

  1. ABAP Smart Help调试截图
  2. how to deal with error message Failed to create note
  3. 如何把新建的UI component添加到新的workcenter里
  4. SAP ABAP实用技巧介绍系列之如何创建Maintenance view
  5. 从Wiesloch火车站到SAP Walldorf总部的交通方式
  6. 腾讯AI开放平台的接口调用指南
  7. Jerry的CRM Middleware(中间件)文章合集
  8. three 天空球_javascript – 分配给相机的three.js天空盒
  9. python自动化办公第二节_自动化测试第二节-jmeter关联+抓包+python基础
  10. C++map容器遍历删除:cannot increment value-initialized map/set iterator