不带大括号的类C语言

用户

我非常喜欢C作为一种编程语言。 但有一件事我真的很想看到,它是一种用Python进行块分隔的方法,即使用标识。在

我对IronPython做了简短的介绍,但它似乎带来了比我需要的更多的python内容。在

有人知道用识别代替花括号的简单方法吗?在

升级版: 请比较C中的类定义: 在

class Foo
{
    public string bar() 
    {
        return "smth";
    }
}

和Python:

^{pr2}$

看看C变种使用了多少冗余空间。我的目标是最好地使用两种语言。在


已被浏览了2776次
更新日期: 2020-10-28 20:11:08
3 个回答
fefe Tyson

为了“节省”代码中的空间,您可以随时采用这种编码方式:

private void DoWork() {
 if(true) {
  DoMoreWork();
 } else {
  DoLessWork();
 }
}

我已经使用它将近一年了,我对代码的可读性非常满意。在

评论 - 2020年9月11日 16:32
fefe Tyson

return someValue == true ? DoSomething() : DoSomethingElse()

而不是

^{pr2}$

xDDD

评论 - 2020年9月11日 16:32
fefe Tyson

Boo是一种带有静态类型的.Net语言。它使用CLR,因此您可以与其他.Net代码共享,包括与winforms和系统io以及其他熟悉的图书馆。它看起来很像python:在Boo中比较一下:

internal class TileBytes:

    public Size as int

    public def constructor(size as int):
         Size = size

    public def Generate(tile as Tile) as (byte):
       buffer as (byte) = array(byte, ((Size * Size) * 3))
       for u in range(0, Size):
         for v in range(0, Size):
            pixelColor as Color32 = GetColor(tile, u, v)
            bufferidx as int = (3 * ((u * Size) + v))
            buffer[bufferidx] = pixelColor.r
            buffer[(bufferidx + 1)] = pixelColor.g
            buffer[(bufferidx + 2)] = pixelColor.b
       return buffer

     public def GetColor(tile as Tile, u as int, v as int) as Color32:
        h as int = (0 if (v > (Size / 2.0)) else 2)
        w as int = (0 if (u > (Size / 2.0)) else 1)
        tc as TileCorner = ((h cast TileCorner) + w)
    return tile[tc].GetPixel(v, (Size - (u + 1)))

在C中

^{pr2}$

Boo也是一个活跃的open source project

评论 - 2020年9月11日 16:32

最新Python问答

推荐Python问答