Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >类似C#的语言,没有花括号

类似C#的语言,没有花括号
EN

Stack Overflow用户
提问于 2013-08-22 11:50:25
回答 3查看 845关注 0票数 0

作为一种编程语言,我非常喜欢C#。但有一件事我真的很想在其中看到的,那就是用Python中的方法来分隔代码块--使用标识。

我在IronPython上看了一下,但它带来的python内容似乎比我需要的要多得多。

有没有人知道用标识代替花括号的简单方法?

更新:请比较C#中的类定义:

代码语言:javascript
运行
AI代码解释
复制
class Foo
{
    public string bar() 
    {
        return "smth";
    }
}

和Python:

代码语言:javascript
运行
AI代码解释
复制
class Foo(object):
    def bar(self):
        return "smth"

看看在C#变体中使用了多少冗余空间。我的目标是充分利用这两种语言的优势。

EN

回答 3

Stack Overflow用户

发布于 2013-08-22 14:59:39

Boo是一种具有静态类型的.Net语言。它使用CLR,因此您可以与包括c#在内的其他.Net代码共享;它可以与winforms、system.io和其他熟悉的库一起使用。它看起来很像python:在Boo中比较一下:

代码语言:javascript
运行
AI代码解释
复制
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#中执行此操作

代码语言:javascript
运行
AI代码解释
复制
class TileBytes
{
public int Size;
public TileBytes(int size)
{
    Size = size;
}

public byte[] Generate(Tile tile)
{
    byte[] buffer = new byte[Size * Size * 3];
    for (int u = 0; u < Size; u++)
    {
        for (int v = 0; v<Size; v++)
        {
            Color32 pixelColor = GetColor (tile, u, v);
            int bufferidx = 3 * (( u * Size) + v);
            buffer[bufferidx] = pixelColor.r;
            buffer[bufferidx + 1] = pixelColor.g;
            buffer[bufferidx + 2] = pixelColor.b;               
        }
    }
    return buffer;
}

public Color32 GetColor(Tile tile, int u, int v)
{
    int h = v > Size / 2.0 ? 0 : 2;
    int w = u > Size / 2.0 ? 0 : 1;
    TileCorner tc = (TileCorner) h + w;
    return tile[tc].GetPixel(v,  Size - (u + 1));
}
}

Boo也是一个active open source project

票数 2
EN

Stack Overflow用户

发布于 2013-08-22 13:35:47

代码语言:javascript
运行
AI代码解释
复制
return someValue == true ? DoSomething() : DoSomethingElse()

而不是

代码语言:javascript
运行
AI代码解释
复制
if (someValue == true)
{
    DoSomething();
}
else
{
    DoSoemthingElse();
}

xDDD

票数 0
EN

Stack Overflow用户

发布于 2013-08-22 12:36:01

为了在你的代码中“节省”空间,你总是可以调整这种编码风格:

代码语言:javascript
运行
AI代码解释
复制
private void DoWork() {
 if(true) {
  DoMoreWork();
 } else {
  DoLessWork();
 }
}

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

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18379611

复制
相关文章
C#学习笔记——new对象时花括号赋值
*当声明一个对象的时候,可以在括号后面加上画括弧即可对类中的公有变量以及可写属性进行快速赋值。当调用无参构造函数,可以将小圆括号去除。 *除此方法之外还可以调用构造函数进行赋值。
vv彭
2021/06/11
1.1K0
smarty 花括号转义
使用 smarty 模板的时候,通常都是用 ‘{’ 和 ‘}’ 作为定界符(delimiter)。
零式的天空
2022/03/02
1K0
双引号与花括号
在Tcl中,可通过双引号“”和花括号{}将多个单词包括分隔符(例如:换行符和空格)和置换符(例如:美元符号$、方括号[]和反斜杠)等特殊字符组成一组,作为一个参数处理。这实际上也是一种置换操作。区别在于双引号内的置换正常进行,而花括号内的置换有可能会被阻止,如下图所示。变量s被赋值为Hello World,注意这里通过双引号避免了空格被当作分隔符处理。第一个puts命令使用了双引号,可以看到所有置换都随之发生;第二个puts命令使用了花括号,相应的内部置换均被阻止。
Lauren的FPGA
2019/10/31
2.3K0
php返回json格式的{}花括号
方括号的[]在json中调试是一个数组,而花括号{}在json中表示一个对象,不过二者在PHP中基本上一个empty就可以判断为i空了,但在js里好像就有一些麻烦了,可能需要下面的判断方式。
老高的技术博客
2022/12/28
1.7K0
编程语言简史:有人不喜欢花括号,于是他发明了 Python
编程语言有上千种,但是流行的不过10来种,那些我们经常使用的编程语言都是谁在什么时候创造出来的呢?Casper Beyer为我们进行了整理。 1800年 Joseph Marie Jacquard教会了一台织布机读穿孔卡片,制造出了第一个高度多线程的处理单元。他的发明受到了预见天网(Skynet)诞生的纺织工人的强烈反对。 1842年 Ada Lovelace(英国诗人拜伦之女)对随后被认定是发布的第一个计算机程序的笔记本高贵和潦草感到厌烦,因为稍微有点不便的是当时还没有计算机呢。 1936年 阿兰·图
企鹅号小编
2018/02/02
1.3K0
编程语言简史:有人不喜欢花括号,于是他发明了 Python
编程语言简史:有人不喜欢花括号,于是他发明了 Python
编程语言有上千种,但是流行的不过10来种,那些我们经常使用的编程语言都是谁在什么时候创造出来的呢?Casper Beyer为我们进行了整理。(本文节选)
养码场
2019/05/15
1K0
GNU C之圆括号套花括号(表达式中的复合语句)
该文介绍了GNU C中圆括号套花括号的复合语句,并举例说明。
雷大亨
2018/01/01
2.2K0
GNU C之圆括号套花括号(表达式中的复合语句)
C和指针-编程练习-花括号是否匹配
C和指针-编程练习-花括号是否匹配 题目: 编写一个程序,它从标准输入读取C源代码,并验证所有花括号都正确地承兑出现。注意:你不必担心注释内部、字符串常量内部和字符常量形式的花括号。 #include <stdio.h> #include <stdlib.h> /* * 检查一个程序的花括号对 */ int main() { char ch; int braces = 0; //逐字符读取程序 while ((ch = getchar()) != EOF)
程序员小涛
2021/01/26
1.4K0
C和指针-编程练习-花括号是否匹配
C语言括号匹配(栈括号匹配c语言)
给定一串字符,不超过100个字符,可能包括括号、数字、字母、标点符号、空格,编程检查这一串字符中的( ) ,[ ],{ }是否匹配。
全栈程序员站长
2022/07/28
2.7K0
C和指针-编程练习-花括号是否匹配
C和指针-编程练习-花括号是否匹配 题目: 编写一个程序,它从标准输入读取C源代码,并验证所有花括号都正确地承兑出现。注意:你不必担心注释内部、字符串常量内部和字符常量形式的花括号。 #include <stdio.h> #include <stdlib.h> /* * 检查一个程序的花括号对 */ int main() { char ch; int braces = 0; //逐字符读取程序 while ((ch = getchar()) != EOF) {
程序员小涛
2021/12/06
5450
括号匹配问题 栈c语言(c语言栈实现括号匹配)
例如:{}[()]、{[()]}、()[]{}这种大中小括号成对出现(位置不限)则为括号匹配,反之则不匹配,如{()[
全栈程序员站长
2022/07/28
2.8K0
C#中的方括号[](特性、属性)
首先要说的是,可能一些刚接触C#的朋友常常容易把属性(Property)跟特性(Attribute)弄混淆,其实这是两种不同的东西。属性就是面向对象思想里所说的封装在类里面的数据字段,其形式为:
vv彭
2020/12/28
7.8K0
C#中的方括号[](特性、属性)
c#实现类似数据的行锁
当我们有一些这样的需求,比如某个订单中下单,修改等等这些是单例执行的,不能同步操作,当然这样的情况你可以使用数据库的行锁来实现,但是我们代码里面实现的话 ,我们也要用到锁,大部分情况下我们使用lock(this) lock(static objcet)这样的锁,但是这样的并不能满足行锁的功能
冰封一夏
2019/09/11
5630
转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题
发布于 2017-10-12 16:08 更新于 2018-08-12 06:49
walterlv
2018/09/18
1.4K0
使用双花括号初始化集合,可别这么干
最近在修改sonar问题时,发现有人使用双花括号初始化集合,提示可能发生内存泄漏。这种初始化方式倒是见过,只知道是使用了匿名内部类,但没有意识到这个问题。
Yuyy
2022/09/21
1K0
使用双花括号初始化集合,可别这么干
shell中的括号(小括号,中括号,大括号)
    ①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。
雪影
2018/08/02
4K0
玫瑰花(C语言代码)
代码用到图形库,有音乐,音乐名为BadApple.mp3,可以找一首mp3形式的歌,歌名改成BadApple.mp3,与.exe文件放在同一个文件夹下,程序执行时会播放名字为BadApple.mp3音乐(会玩的可以去看程序自己改),不同编译器颜色不同左vc,右Dev,颜色也可以通过RGB()进行修改。
全栈程序员站长
2022/09/17
14.8K1
玫瑰花(C语言代码)
(C语言)检测括号是否匹配
程序设计基础课大作业1 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<malloc.h> #define maxsize 1024 typedef char datatype; typedef struct { datatype elements[maxsize]; int top; }stack; void setnull(stack *&); void push(stack*,datatype); datat
zstar
2022/06/14
1.5K0
javascript天生就具备类似c#中的"委托"功能
今天读了Professional Javascript for Web Developers,才知道javascript天生就具备类似c#中的"委托"功能 <script type="text/javascript"> //定义一个加法函数 function fnAdd(){     var iResult = 0;     for(var i=0;i<arguments.length;i++){         iResult += arguments[i];     }     retur
菩提树下的杨过
2018/01/22
6420
点击加载更多

相似问题

砖-花括号/没有花括号?

53

C语言的回调和花括号?

16

如果没有花括号,把花括号放到javascript中?

15

没有花括号的Kotlin类

12

lambda表达式c#中的花括号与无花括号

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文