首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Rust |哪个是更好的做法:使用大括号还是在表达式两边使用括号?

在Rust中,使用大括号和使用括号在表达式两边是有不同的含义和用法的。

  1. 使用大括号({}):
    • 大括号用于创建一个代码块,可以包含多个语句。
    • 代码块中的语句按顺序执行。
    • 代码块可以用于限定变量的作用域。
    • 代码块中的最后一个表达式的值将作为代码块的返回值。
    • 例如:
    • 例如:
    • 这里,大括号内的代码块定义了一个变量 y,然后通过 y + 2 计算表达式的值,并将结果赋给变量 x
  • 使用括号(()):
    • 括号用于表示函数调用或调整运算符的优先级。
    • 当用于函数调用时,括号内可以传递函数的参数。
    • 例如:
    • 例如:
    • 这里,括号内的参数 34 被传递给了 add 函数进行调用。

因此,使用大括号和使用括号在表达式两边是有不同的语法和用途的。具体使用哪种方式取决于你的需求和代码逻辑。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Rust 从入门到精通06-语句和表达式

Rust 程序里面,语句(Statement)执行一些操作但不返回指令,表达式(Expressions)计算并产生一个值。表达式可以是语句一部分,反过来,语句也可以是表达式一部分。...2.4、语句块表达式 Rust 中,语句块也可以是表达式一部分。...("y={}",y); } 打印结果为: 2.5、if-else ①、条件表达式类型必须bool ②、条件表达式并未强制要求用小括号()括起来,如果括起来,编译器反而会告警,认为多余括号;...注意:Rust中,我们可以 loop、while、for循环前面加上“生命周期标识”,在内部循环中,可以通过break、continue选择跳转到哪个循环标识。...("{}",x); 上面语句Rust中完全合理,因为编译器可以通过流程分析推理出x=1,必然println!之前执行过,所以打印x完全合理

39620

Google C++ 编程风格指南(八):格式

如果你喜欢用也没问题; 复杂条件或循环语句用大括号可读性会更好....循环和开关选择语句 switch 语句可以使用大括号分段,以表明 cases 之间不是连在一起单语句循环里,括号可用可不用。...下面指针和引用表达式正确使用范例: x = *p; p = &x; x = r.y; x = r->y; 注意:啊 访问成员时, 句点或箭头前后没有空格. 指针操作符 * 或 & 后没有空格....单个文件内要保持风格一致, 所以, 如果修改现有文件, 要遵照该文件风格. 8.11. 布尔表达式 如果一个布尔表达式超过 标准行宽, 断行方式要统一一下....这格式 Google 里很常见,您要把所有操作符放在开头也可以。可以考虑额外插入圆括号, 合理使用的话对增强可读性很有帮助.

1.6K30
  • C语言编程规范 clean code

    理由: 代码逻辑直观,易读; 已有条件语句代码上增加新代码时不容易出错; 对于条件语句中使用函数式宏时,没有大括号保护容易出错(如果宏定义时遗漏了大括号)。...(someConditions) { ... } else { ... } // Bad: else 与 if 同一行 循环 规则2.7 循环语句必须使用大括号 和条件表达式类似,我们要求for/while...// Good:循环体空,使用大括号 while (condition) { continue; // Good:continue 表示空逻辑,使用大括号 } 坏例子:...文本替换后,宏包含语句跟调用点代码合并。 合并后表达式因为操作符优先级和结合律,可能会导致计算结果跟期望不同,尤其当宏参数一个表达式中时。...大括号后紧跟分号,另外一个语句。

    4.5K10

    C语言编程规范 clean code

    理由: 代码逻辑直观,易读; 已有条件语句代码上增加新代码时不容易出错; 对于条件语句中使用函数式宏时,没有大括号保护容易出错(如果宏定义时遗漏了大括号)。...(someConditions) { ... } else { ... } // Bad: else 与 if 同一行 循环 规则2.7 循环语句必须使用大括号 和条件表达式类似,我们要求for/while...// Good:循环体空,使用大括号 while (condition) { continue; // Good:continue 表示空逻辑,使用大括号 } 坏例子:...文本替换后,宏包含语句跟调用点代码合并。 合并后表达式因为操作符优先级和结合律,可能会导致计算结果跟期望不同,尤其当宏参数一个表达式中时。...大括号后紧跟分号,另外一个语句。

    5.5K10

    求求你规范下你代码风格

    下面我给关于加空格几点建议: 1、二目、三目运算符左右两边都应该加一个空格。 2、注释双斜线与注释内容之间有且仅有一个空格。 3、方法参数定义和传入参数时,多个参数逗号后边都应该加空格。...4、如果大括号为空,则简洁地写成{}即可,大括号中间无须换行和加空格。 5、左右小括号括号内部相邻字符之间不要出现空格。 6、左大括号前需要加空格。...因此,控制语句必须遵循如下约定: 1、 if, for, while, do-while 等语句中必须使用大括号,即使只有一行代码,也应该加上大括号。...例如: 1int sum = 0; 2for(int i = 0; i < 10; i++) { 3 sum += i;// 尽管只有一行/ 4} 2、条件表达式中不允许出现赋值操作,也不允许判断表达式中出现复杂所及组合...我《码出高效Java开发手册》里,本书作者推荐四个空格缩进,禁止使用Tab键。 当然,你使用IDE时候,当你换行时,很多编辑器会帮你自动缩进,大多数IDE都是默认四个空格来缩进。

    46420

    Rust学习笔记之结构体

    ❞ 定义结构体,需要使用 struct 关键字并为整个结构体提供一个名字。「结构体名字」需要描述它所组合数据意义。接着,大括号中,「定义每一部分数据名字和类型」,我们称为 字段field。...创建一个实例需要以结构体名字开头,接着大括号使用 key: value 「键-值对形式」提供字段 key 字段名字 value 需要存储字段中数据值 「实例中字段顺序不需要和它们结构体中声明顺序一致...大括号中定义了字段 width 和 height,类型都是 u32。接着 main 中,我们创建了一个具体 「Rectangle 实例」,它 30,高 50。...应该用来输出格式不明确,因为这有更多显示可能性: 是否需要逗号? 需要打印出大括号吗? 所有字段都应该显示吗?...风格的话,输出会看起来像这样 另一种使用 Debug 格式打印数值方法使用 dbg! 宏。dbg! 宏接收一个表达式所有权,「打印出代码中调用 dbg!

    44020

    java中用MessageFormat格式化json字符串用占位符时出现问题cant parse argument number

    MessageFormat.format方法中组装jason数据字符串:{code:"w1",des:"w2"},起止分别有左大括号和右大括号。...直接写点位符位报错: java.lang.IllegalArgumentException : can't parse argument number MessageFormat 解决方法将单引号把大括号包含起来...des:\"{1}\"'}'";         System.out.println(MessageFormat.format(responseTemplate, "w1","w2")); 这是正确做法...,之前参考另一个网友说只加一个单引号:"'{code:\"{0}\",des:\"{1}\"}'"; 测试时发现{0}等都没有替换,这是错误做法,'{'两边都要加。...如果格式化字符串中包含单引号,处理方法用2个单引号进行转义:         String responseTemplate = "'{'code:''{0}'',des:''{1}'''}'";

    8.1K80

    Rust 200 行代码实现表达式解析

    本文完整代码:https://github.com/rosedblabs/rust-practice 表达式解析、计算是一种基本和常见任务,例如最常见算术表达式,计算方法有很多,比如逆波兰表达式、...最后还需要注意一个问题,那就是子表达式,也就是用括号包裹部分,这部分实际上需要单独进行计算,并且比运算符优先级更高。...首先我们需要将表达式进行解析,也就是词法分析阶段,将一个表达式解析为不同 Token,下面约定几种 Token: // Token 表示,数字、运算符号、括号 #[derive(Debug, Clone...: 一使用了 min_prec 参数控制当前层级优先级,如果表达式优先级小于 min_prec 则直接跳出循环,返回当前值。...,这个算法看起来还是非常简洁优雅,非常巧妙利用优先级来解决运算顺序和结合等问题。

    15010

    JavaScript 第二天

    、||: 左边为true就短路 原因:通过左边能得到整个式子结果,因此没必要再判断右边 运算结果: 无论&&还是|| ,结果都是最后被执行表达式值,一般用在变量赋值 // 五个短路: false 0...c || b && a console.log(d) 表达式和语句: 表达式一组代码集合,js解释器会计算出一个结果 某些情况, 也可把表达式理解为语句, 因为它在计算结果, 也是做事 表达式计算出一个值...:单分支、双分支、多分支 括号条件为true时,就进入大括号里执行代码 小括号结果若不是布尔类型时,会发生隐式转换转为布尔类型 1....循环结构: 学习时可帮助更好理解代码运行, 工作时可更快找到bug 断点: 某句代码上加标记叫断点, 程序执行到这句有标记代码时会暂停下来 图片 While 循环: 循环: 重复执行某段代码 跟...if语句很像,都要满足小括号条件为true才会执行代码 while大括号里代码执行完毕后不会跳出,而是继续回到小括号里判断条件是否满足,若满足又执行大括号代码,然后再回到小括号判断条件, 直到括号内条件不满足

    94830

    JavaScript 设计模式学习第四篇-ES6 中可能遇到知识点

    函数执行时,for 循环已经结束,i 最终 4 ,所以无论执行数组里哪个函数,结果都是 i 最终值 4。...,也是使用了这个做法。...参数如果只有一个,可以不加圆括号 (); 2. 没有参数时,不能省略圆括号 (); 3. 如果函数体只返回单一表达式,那么函数体可以不使用大括号 {} 和 return,直接写表达式即可; 4.... 3 基础上,如果返回值一个对象字面量,那么返回值需要加圆括号 (),避免被识别为代码块。 2.2....以前做法中,如果要给闭包指定 this ,可以用 bind\call\apply,或者把 this 值分配给封闭变量(一般 that)。箭头函数出来之后,给我们提供了不一样选择。

    46610

    JavaScript 运算符与语句

    1,例如: x++ 符号 作用 说明 -- 自减 变量自身值减1,例如: x-- ++在前和++在后单独使用时二者并没有差别,而且一般开发中我们都是独立使用 ++在后(后缀式)我们会使用更多 <script...前置自增和后置自增单独使用,效果一样 //2....语法: if(条件表达式) { // 满足条件要执行语句 } 小括号条件结果布尔值,为 true 时,进入大括号里执行代码;为false,则不执行大括号里面代码 小括号结果若不是布尔类型时...,会发生类型转换为布尔值,类似Boolean() 如果大括号只有一个语句,大括号可以省略,但是,俺们不提倡这么做~ // 单分支语句 // if (false) {...*学习时可以帮助更好理解代码运行,工作时可以更快找到bug 浏览器打开调试界面 按F12打开开发者工具 点到源代码一栏 ( sources ) 选择代码文件 **断点:**某句代码上加标记就叫断点

    71330

    编程语言新宠 Rust 不完全入门指南

    、Mozilla 和国内华为,由五大科技巨头支持,对 Rust 来说总归好事,可以为这门语言促进更好发展,也有着更好前景。...模式匹配:提供强大模式匹配功能与 match 表达式搭配使用,可以更好控制程序控制流,单值匹配、多值匹配和范围匹配都可实现。 ......let 中使用 if 表达式,注意 if else 分支数据类型要一致,因为 Rust 静态类型,需要在编译期间确定所有的类型。...这个示例分为三个小知识点: 如果 Go 匹配,因为这个分支我们仅需要返回一个值,可以不使用大括号。 如果 Rust 匹配,这次我们需要在分支中执行多行代码,可以使用大括号。...trait 定义 创建文件 person.rs 使用 trait 定义行为 Person,例如,每个人都有一个简单介绍,大括号内声明实现这个 trail 行为所需要签名方法。

    2.8K10

    Rust基础语法(注释、函数、打印)

    Rust 函数基本形式: fn ( ) Rust 代码中函数和变量名使用 snake case 规范风格。...Rust 中通过输入 fn 后面跟着函数名和一对圆括号来定义函数。大括号告诉编译器哪里函数体开始和结尾。 可以使用函数名后跟圆括号来调用我们定义过任意函数。...因为 Rust 一门基于表达式(expression-based)语言,这是一个需要理解(不同于其他语言)重要区别。...其他语言并没有这样区别,所以让我们看看语句与表达式有什么区别以及这些区别是如何影响函数体。 语句(Statements)执行一些操作但不返回值指令。... Rust 中,函数返回值等同于函数体最后一个表达式值。使用 return 关键字和指定值,可从函数中提前返回;但大部分函数隐式返回最后表达式

    73720

    Rust 易学教程】第 1 天:Rust 基础,基本语法

    Rust 个啥 Rust 一种新编程语言, 2015 年发布了 1.0 版本,我会从以下方面让你知道 Rust 出现意义: Rust 一种静态编译语言,其作用与 c++ 类似。...Rust 需要可变数量参数(不允许函数重载)情况下使用宏。 宏“卫生”,意味着它们不会意外地从它们所使用范围中捕获标识符。Rust 宏实际上只是部分卫生Rust 多范式。...尽管只有29行代码,但这个 C 语言示例中至少有 11 行包含了严重错误: 赋值=而不是相等比较==(第28行) printf 多余参数(第23行) 文件描述符泄漏(第26行之后) 多行 if 中忘记使用大括号...例如: 赋值=代替相等比较==: 2003年 Linux 后门尝试漏洞 忘记在多行 if 中使用大括号: Apple goto fail 漏洞 switch 语句中被遗忘中断: 中断 sudo 中断...所有 if 子句都需要大括号。 match(Rust中相当于switch) 不会失败,因此开发者不会不小心忘记了 break。 缓冲区切片携带它们大小,不依赖于 NULL` 终止符。

    35020

    急速上手之Lambda表达式

    start(); // 启动线程 } } ​ 这段代码和刚才执行效果完全一样,可以1.8或更高编译级别下通过。...->新引入语法格式,代表指向动作。 大括号语法与传统方法体要求基本一致。 使用前提: Lambda表达式并不能简化所有匿名内部类写法。...标准格式基础上,使用省略写法规则为: 小括号内参数类型可以省略; 如果小括号内有且仅有一个参,则小括号可以省略; 如果大括号内有且仅有一个语句,则无论是否有返回值,都可以省略大括号、return关键字及语句分号...无论JDK内置Runnable、Comparator接口还是自定义接口,只有当接口中抽象方法存在且唯一时,才可以使用Lambda。 使用Lambda必须具有上下文推断。...无论JDK内置Runnable、Comparator接口还是自定义接口,只有当接口中抽象方法存在且唯一时,才可以使用Lambda。 使用Lambda必须具有上下文推断。

    32720

    Google Java编程风格规范(2020年4月原版翻译)

    2.3.3 非ASCII字符 对于剩余非ASCII字符,使用实际Unicode字符(比如∞),还是使用等价Unicode转义符(比如\u221e),取决于哪个能让代码更易于阅读和理解。...4.1 大括号 4.1.1 使用大括号(即使可选) 大括号与if, else, for, do, while语句一起使用,即使只有一条语句(或是空),也应该把大括号写上。...如果右大括号一个语句、函数体或类终止,则右大括号后换行; 否则不换行。..., : ;及右括号())后 如果在一条语句后做注释,则双斜杠(//)两边都要空格。这里可以允许多个空格,但没有必要。...4.8.2.2 需要时才声明,并尽快进行初始化 不要在一个代码块开头把局部变量一次性都声明了(这是c语言做法),而是第一次需要使用它时才声明。

    1.1K20

    2023学习日志

    rust枚举类型枚举声明类似于结构体,不同一个枚举类型变量中,其值类型为所有字段类型之一。结构体中可以嵌套枚举类型,实现复杂数据结构。...Option 枚举Option rust标准库定义枚举类型,定义如下: enum Option { None, Some(T), }其中T为泛型,标准库如此定义是为了增加代码兼容性... = None;值得注意rust对Option进行了优化,使用rust声明变量时可以省略Option::前缀。...->'后可跟一个表达式大括号包围代码块。值得注意,代码块必须有返回值,表达式或代码块返回值将作为match返回值。...此外,match必须覆盖所有可能模式,可以使用other或者_来表示默认匹配模式。

    14210

    初级程序员需要知道基本代码规范

    所以今天我将我《阿里巴巴Java开发手册》中看到一些有用、适合初级程序员代码基本规范,分享给大家! 1.【强制】大括号使用约定。...如果大括号内为空,则简洁地写成{}即可,不需要换行;如果是非空代码块则: 1) 左大括号前不换行。 2) 左大括号后换行。 3) 右大括号前换行。...大括号后直接结束,则必须换行 } } 6....5) 避免上下文重复使用一个变量,使用 final 描述可以强制重新定义一个变量,方便更好地进行重构。 24.【强制】中括号数组类型一部分,数组定义如下:String[] args; 25....【强制】 if/else/for/while/do 语句中必须使用大括号。即使只有一行代码,避免采用单行编码方式:if (condition) statements; 28.

    78521

    Rust学习】08_使用结构体代码示例

    我们必须记住,width 元组索引 0,height 元组索引 1。如果其他人使用我们代码,这将更难弄清楚并记住。因为我们没有代码中传达数据含义,所以现在更容易引入错误。...大括号内,我们将字段定义为 width 和 height,这两个字段类型都是 u32。然后, main 中,我们创建了一个特定 Rectangle 实例,它宽度为 30,高度为 50。...宏可以执行多种格式设置,默认情况下,大括号指示 println! 使用称为 Display: 输出格式,供最终用户直接使用。...应该格式化输出方式就不那么清楚了,因为有更多显示可能性:是否需要逗号?是否要打印大括号?是否应显示所有字段?...放在大括号内表示 println!我们想要使用一种称为 Debug 输出格式。Debug trait 使我们能够以对开发人员有用方式打印我们结构体,这样我们就可以调试代码时看到它值。

    11110

    《JavaScript 模式》读书笔记(2)— 基本技巧3

    一、缩进 无论使用tab还是空格,只要是一致遵循,是什么并不重要。JSLint默认值4个空格来缩进。那么需要对哪些内容进行缩进呢?只需要对大括号中所有的代码进行缩进。...从技术上来说,if语句和for语句中如果仅有一行语句,可以不用大括号,但是为了一致性和更方便升级,最好还是使用大括号。...三、开放大括号位置 开发人员讲开放大括号放置于什么位置有不同选择,和语句放在同一行还是放在接下来一行中呢? if(true) { alert("It's TRUE!")...a, b, c) 函数声明大括号之前:function myFunc() {} 匿名函数表达式之后:var myFunc = function () {}   空格另外一个作用是用来分隔所有的操作符和操作...最后一点关于使用空格情形大括号有关如下情形使用空格比较好做法函数中使用大括号开始符之前,例如if-else语句、循环语句和对象字面量等。

    47230
    领券