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

浮点型比其他语言要差

  • 运算时,计算结果不准

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

    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
  • 封装so库时的写法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CC=gcc

SRCS=mylib.c

OBJS=$(SRCS:.c=.o)

EXEC=libmylib.so

start: $(OBJS)
$(CC) -o $(EXEC) $(OBJS) -shared

.c.o:
$(CC) -o $@ -c $< -fPIC

clean:
rm -rf $(OBJS)
  • 准备工作

    • main.cpp

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      #include <iostream>
      #include "a.h"

      using namespace std;
      int main()
      {
      test();
      cout << "hello world" << endl;
      return 0;
      }
    • a.h

      1
      2
      3
      4
      5
      #ifndef AH_H
      #define AH_H
      void test();

      #endif
    • a.cpp

      1
      2
      3
      4
      5
      6
      #include <stdio.h>

      void test()
      {
      printf("I am test\n");
      }