Rust新手上路

 memo

rustup

  • 环境变量配置

    • RUSTUP_HOME

      后期包的累积可能会占用巨量的存储空间,设置此环境变量将存储的包放置在富裕的空间

    • 下载源

      加快下载速度,设置这两个环境变量后再运行rustup-init.exe

      1
      2
      RUSTUP_DIST_SERVER : https://mirrors.ustc.edu.cn/rust-static
      RUSTUP_UPDATE_ROOT : https://mirrors.ustc.edu.cn/rust-static/rustup

第一题

LeetCode 877 Medium [ https://leetcode.com/problems/stone-game ]

  • 描述:

    Alice 和 Bob 用几堆石子在做游戏。一共有偶数堆石子,排成一行;每堆都有 整数颗石子,数目为 piles[i] 。

    游戏以谁手中的石子最多来决出胜负。石子的 总数奇数 ,所以没有平局。

    Alice 和 Bob 轮流进行,Alice 先开始 。 每回合,玩家从行的 开始结束 处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止,此时手中 石子最多 的玩家 获胜

    假设 Alice 和 Bob 都发挥出最佳水平,当 Alice 赢得比赛时返回 true ,当 Bob 赢得比赛时返回 false 。

SQL语句优化

  • 避免select *
    • 在解析的过程中,会将“*”依次转换成所有的列名,这个工作是通过查询数据字典完成的,这意味着将耗费更多的时间
    • 应该养成一个需要什么就取什么的好习惯

浮点型比其他语言要差

  • 运算时,计算结果不准

  • 四舍五入时,用的是银行舍入法,和其他语言四舍五入的值对不上。解决方法如下:

    1
    2
    3
    4
    5
    6
    //四舍五入 取精度
    func ToFixed(f float64,places int) float64{
    shift := math.Pow(10, float64(places))
    fv := 0.0000000001 + f //对浮点数产生.xxx999999999 计算不准进行处理
    return math.Floor(fv * shift + .5) / shift
    }
Go