diff --git a/新规范 b/新规范 index 95ed48c..2120cda 100644 --- a/新规范 +++ b/新规范 @@ -1,6 +1,6 @@ 对于新的代码,我们期望采用: -单行写入尽可能多的代码,比如 f(a, b, c, d, e, \nh)(代码长,根据 PEP8 换行),期望写作f(a, b, c, d, e, h)(不换行) +单行写入尽可能多的代码,比如 f(a, b, c, d, e, \nh)(代码长,正常应根据 PEP8 换行),但是期望写作f(a, b, c, d, e, h)(不换行) 原本的 T | t.CPtr 尽可能写作 T* c.Addr 和 c.Deref 可以写作为 &a 和 *a c.DerefAs 可以写作为 *a = b @@ -11,7 +11,7 @@ c.Load 写作为 *a = *b t.CInt、t.CUInt64T、t.CChar 可以写作为 int、uint64、char,诸如此类 class A(t.CEnum):...可以写为 enum A:\n\ta, b, c诸如此类 -注释只讲解作用,不掺杂历史原因,除了头注释,避免超长注释的存在,尽可能使用英文注释 +注释只讲解作用,不掺杂历史原因,除了头注释,避免超长注释的存在,尽可能使用英文注释(包括三引号注释__doc__,同样需要清理) 对于&a,明确其返回T*,因此不再需要t.CPtr对其强转 if x:\n\treturn y期望写作为 if x: return y 来减少不必要的行数 原本的 @@ -22,4 +22,34 @@ X: t.CDefine = y 避免使用 if a \ b \ c: -期望尽可能一行写完 if \ No newline at end of file +期望尽可能一行写完 if + +for i in range(...): + ... +不需要提前声明i + + +i: int = 0 +while i < self._arg_count: + ... + i += 1 +诸如此类 +期望写作 +for i in range(self._arg_count): + ... + + +同样避免rawptr[T](除非存储 rawptr 纯裸指针) 的使用,优先使用 T* + +t.CConst | T +t.CVolatile | T 可以写作为 const T、volatile T + +Viper中不需要引号前向引用,直接写即可 +真正需要前向引用的地方需要用指针 + +纯数据结构体的“class”关键字改为“struct”(无任何成员函数) +class X(t.REnum): + ... +改为 +renum X: + ...