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);
}
目录
相关文章
|
2天前
|
安全 Java Go
Java vs. Go:并发之争
【4月更文挑战第20天】
23 1
|
2天前
|
Rust 安全 程序员
|
2天前
|
算法 Java Go
Go vs Java:内存管理与垃圾回收机制对比
对比了Go和Java的内存管理与垃圾回收机制。Java依赖JVM自动管理内存,使用堆栈内存并采用多种垃圾回收算法,如标记-清除和分代收集。Go则提供更多的手动控制,内存分配与释放由分配器和垃圾回收器协同完成,使用三色标记算法并发回收。示例展示了Java中对象自动创建和销毁,而Go中开发者需注意内存泄漏。选择语言应根据项目需求和技术栈来决定。
|
2天前
|
Java Linux Go
一文带你速通Go语言基础语法
本文是关于Go语言的入门介绍,作者因其简洁高效的特性对Go语言情有独钟。文章首先概述了Go语言的优势,包括快速上手、并发编程简单、设计简洁且功能强大,以及丰富的标准库。接着,文章通过示例展示了如何编写和运行Go代码,包括声明包、导入包和输出语句。此外,还介绍了Go的语法基础,如变量类型(数字、字符串、布尔和复数)、变量赋值、类型转换和默认值。文章还涉及条件分支(if和switch)和循环结构(for)。最后,简要提到了Go函数的定义和多返回值特性,以及一些常见的Go命令。作者计划在后续文章中进一步探讨Go语言的其他方面。
13 0
|
2天前
|
Java Go 云计算
【Go语言专栏】Go语言语法基础详解
【4月更文挑战第30天】Go语言,因简洁、高效和并发处理能力深受开发者喜爱,尤其在云计算和微服务领域广泛应用。本文为初学者详解Go语法基础,包括静态类型、垃圾回收、并发编程、错误处理和包管理。通过学习,读者将理解Go语言设计哲学,掌握其语法,以提升开发效率。Go的并发核心是协程和通道,而错误处理采用显式方式,增强了代码的健壮性。Go的包管理机制支持模块化开发。了解这些基础,将助你更好地探索Go语言的世界及其未来潜力。
|
2天前
|
Java 大数据 Go
Go vs Java:在大数据处理领域的性能对比
Go与Java在大数据处理中各有特点。Go启动快,内存占用少,静态类型及并发模型(goroutine和channel)使其在并发性能上有优势。Java虽然启动慢,JVM内存占用高,但拥有丰富的生态系统和并发工具。代码示例展示了Go的goroutine和Java的线程池处理大数据的场景。在性能上,Go可能更优,但Java的跨平台性和生态广度使其仍被广泛应用。
|
2天前
|
Go
Golang深入浅出之-Go语言基础语法:变量声明与赋值
【4月更文挑战第20天】本文介绍了Go语言中变量声明与赋值的基础知识,包括使用`var`关键字和简短声明`:=`的方式,以及多变量声明与赋值。强调了变量作用域、遮蔽、初始化与零值的重要性,并提醒读者注意类型推断时的一致性。了解这些概念有助于避免常见错误,提高编程技能和面试表现。
27 0
|
2天前
|
存储 Rust 自然语言处理
Rust 基础语法和数据类型
Rust 基础语法和数据类型
37 0
|
2天前
|
Rust 安全 程序员
Rust vs Go:解析两者的独特特性和适用场景
在讨论 Rust 与 Go 两种编程语言哪种更优秀时,我们将探讨它们在性能、简易性、安全性、功能、规模和并发处理等方面的比较。同时,我们看看它们有什么共同点和根本的差异。现在就来看看这个友好而公平的对比。
|
2天前
|
Rust C++
Rust那些事之Borrow VS AsRef?
【4月更文挑战第3天】Rust中的Borrow和AsRef是相似的trait,都提供了一个方法来获取引用。Borrow需要借用值的Hash、Eq和Ord与拥有值相等,适合结构体的单字段借用;而AsRef无此限制,有默认实现,可接受引用或值。当需要特殊trait一致性时(如HashMap的键值比较),使用Borrow;当仅需简单引用转换时,使用AsRef。
34 0
http://www.vxiaotou.com