Rust vs Go:常用语法对比(十三)(2)

简介: Rust vs Go:常用语法对比(十三)(2)

251. Parse binary digits

Extract integer value i from its binary string representation s (in radix 2) E.g. "1101" -> 13

解析二进制数字

package main
import (
  "fmt"
  "reflect"
  "strconv"
)
func main() {
  s := "1101"
  fmt.Println("s is", reflect.TypeOf(s), s)
  i, err := strconv.ParseInt(s, 2, 0)
  if err != nil {
    panic(err)
  }
  fmt.Println("i is", reflect.TypeOf(i), i)
}
s is string 1101
i is int64 13
fn main() {
    let s = "1101"; // binary digits
    let i = i32::from_str_radix(s, 2).expect("Not a binary number!");
    println!("{}", i);
}

252. Conditional assignment

Assign to variable x the value "a" if calling the function condition returns true, or the value "b" otherwise.

条件赋值

package main
import (
  "fmt"
)
func main() {
  var x string
  if condition() {
    x = "a"
  } else {
    x = "b"
  }
  fmt.Println(x)
}
func condition() bool {
  return "Socrates" == "dog"
}
x = if condition() { "a" } else { "b" };

258. Convert list of strings to list of integers

Convert the string values from list a into a list of integers b.

将字符串列表转换为整数列表

package main
import (
  "fmt"
  "strconv"
)
func main() {
  a := []string{"11", "22", "33"}
  b := make([]int, len(a))
  var err error
  for i, s := range a {
    b[i], err = strconv.Atoi(s)
    if err != nil {
      panic(err)
    }
  }
  fmt.Println(b)
}
fn main() {
    let a: Vec<&str> = vec!["11", "-22", "33"];
    let b: Vec<i64> = a.iter().map(|x| x.parse::<i64>().unwrap()).collect();
    println!("{:?}", b);
}

259. Split on several separators

Build list parts consisting of substrings of input string s, separated by any of the characters ',' (comma), '-' (dash), '_' (underscore).

在几个分隔符上拆分

package main
import (
  "fmt"
  "regexp"
)
func main() {
  s := "2021-03-11,linux_amd64"
  re := regexp.MustCompile("[,\\-_]")
  parts := re.Split(s, -1)
  fmt.Printf("%q", parts)
}
fn main() {
    let s = "2021-03-11,linux_amd64";
    let parts: Vec<_> = s.split(&[',', '-', '_'][..]).collect();
    println!("{:?}", parts);
}

266. Repeating string

Assign to string s the value of string v, repeated n times and write it out.

E.g. v="abc", n=5 ⇒ s="abcabcabcabcabc"

重复字符串

package main
import (
  "fmt"
  "strings"
)
func main() {
  v := "abc"
  n := 5
  s := strings.Repeat(v, n)
  fmt.Println(s)
}
fn main() {
    let v = "abc";
    let n = 5;
    let s = v.repeat(n);
    println!("{}", s);
}
目录
相关文章
|
1月前
|
Rust API
【Rust学习】09_方法语法
结构体让你可以创建出在你的领域中有意义的自定义类型。通过结构体,我们可以将相关联的数据片段联系起来并命名它们,这样可以使得代码更加清晰。在 impl 块中,你可以定义与你的类型相关联的函数,而方法是一种相关联的函数,允许您指定结构体的实例具有的行为。 但是结构体并不是创建自定义类型的唯一方式:让我们转向 Rust 的 enum 功能,将另一个工具添加到你的工具箱中。
17 0
|
2月前
|
Java 编译器 Go
Go to Learn Go之基础语法
Go to Learn Go之基础语法
18 0
|
3月前
|
Rust 安全 编译器
30天拿下Rust之语法大全
Rust是一种系统级编程语言,以其独特的所有权系统和内存安全性受到开发者青睐。本文从基本数据类型入手,介绍了标量类型如整数、浮点数、布尔值及字符,复合类型如元组、数组和结构体等。此外,还探讨了变量与常量的声明与使用,条件判断与循环语句的语法,以及函数定义与调用的方法。文章通过示例代码展示了如何使用Rust编写简洁高效的程序,并简要介绍了注释与宏的概念,为读者快速掌握这门语言提供了实用指南。欲获取最新文章或交流技术问题,请关注微信公众号“希望睿智”。
49 1
|
2月前
|
Rust Linux Go
Rust/Go语言学习
Rust/Go语言学习
|
5月前
|
存储 Java Go
|
4月前
|
Rust
Rust 中使用 :: 这种语法的几种情况
Rust 中使用 :: 这种语法的几种情况
|
5月前
|
Rust
Rust的if let语法:更简洁的模式匹配
Rust的if let语法:更简洁的模式匹配
|
5月前
|
编译器 Go 开发者
|
5月前
|
Go
go基础语法结束篇 ——函数与方法
go基础语法结束篇 ——函数与方法
|
5月前
|
编译器 Go 数据安全/隐私保护
go语言入门之路——基础语法
go语言入门之路——基础语法