1楼:匿名用户
语法糖(syntactic sugar)
也译为糖衣语法
是由英国计算机科学家彼得·约翰·兰达(peter j. landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。
通常来说使用语法糖能够增加程序的可读性,从而减少程序**出错的机会。
举个例子:
在c语言里用a[i]表示*(a+i),用a[i][j]表示*(*(a+i*数组a第二维的长度)+j),由此可见语法糖不是“现代语言”独有,这种写法简洁明了,容易被人理解。
2楼:七颜
就是把库做到语言的程度
很傻很天真的问题:什么是语法糖
3楼:刀哥专属
语法糖(syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(peter j. landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序**出错的机会。
什么是:语法糖,语法盐,语法糖精
4楼:change双鱼
语法糖 syntactic sugar
指计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。
语法盐 syntactic salt
指的是让写出坏**更难的语法特性。这些特性强迫程序员做出一些基本不用于描述程序行为,而是用来证明他们知道自己在做什么的额外举动。
语法糖精 syntactic saccharine指的是未能让编程更加方便的附加语法。
看看c#6.0中那些语法糖都干了些什么(终结
5楼:匿名用户
yield 语句只能出现在 iterator 块中,这种块可作为方法、运算符或访问器的主体实现。 这类方法、运算符或访问器的体受以下约束的控制。不允许不安全块。
方法、运算符或访问器的参数不能是 ref 或 out。 yield return 语句不能放在 try-catch 块中的任何位置。 该语句可放在后跟 finally 块的 try 块中。
yield break 语句可放在 try 块或 catch 块中,但不能放在 finally 块中。 yield 语句不能出现在匿名方法中。 有关更多信息,请参见 匿名方法c# 编程指南。
当和 expression 一起使用时,yield return 语句不能出现在 catch 块中或含有一个或多个 catch 子句的try 块中。 有关更多信息,请参见 异常处理语句c# 参考。
lua语言中的"."和":"有什么不同?
6楼:错落二人组
:是个语法糖,调用的函数会自动传递参数self即local a =
function a.foo(self, a)self.x = a
endfunction a:foo2(a)self.x = a
end--调用时:
a.foo(a, 2)
a.foo2(2)
上述两个操作是等价的,用:时就省去了定义和调用时需要额外添加self用来指代自身的麻烦
用cocos2d么,cc是cocos2d库的对象名称
java中语句super什么意思
7楼:飞鹤y丨ovo丨
要说super就先要说this。
"this",作为一个特殊的关键字,它的规则如下:
1。可以表示构造函数传递。this(a,b)表示调用另外一个构造函数。这里面的this就是一个特殊语法,不是变量,没有什么类型。
2。可以在一个类的非static成员内部使用,表示当前这个对象。此时,this就是一个final的普通变量,它有静态类型,就是这个类c本身;它有动态类型,就是当前这个对象的类型。
你可以对它调用成员函数,把它传递给别的函数,等等等等。只要一个c类型的final变量可以出现的地方,它就可以出现。
"super"。它和"this"类似,但是也有不同的地方。
1。表示调用父类的构造函数。也是一个特殊语法,不是变量,没有什么类型。
2。可以在一个类的非static成员内部使用。比如super.method()。
但是,注意,这个super.method()只是长得跟some_var.method()一样,一个语法糖而已。实质上,"super"根本不是一个变量。
为什么不是?因为如果是就坏了。java里面有一个金科玉律:任何public非static函数的调用都是多态的。
所以,如果super是个变量,也指向当前对象,那么,不管super的静态类型是什么super.method()必然调用的是子类的那个版本,而不会是我们期望的,静态地选择父类的那个版本。
所以,你只要把super.***看成一个特殊的语法,比如理解为“super::***”就好了。
既然super不是一个变量,那么不能把它象一个普通变量那样"==",或者传递给某个函数就看起来很正常了,是么?何况,你其实也用不着它,有this你这些要求就都可以办到了。
3。super的另外一个作用是调用父类的protected函数。只有通过"super"这个魔咒,我们才能操作父类的protected成员,别无它法
8楼:糜春求绚
调用父类的paint***ponent函数
9楼:泰赋行智敏
因为这个方法paint***ponent将超类的paint***ponent方法重写了。当要引用超类的paint***ponent方法时需spuer来调用超类的方法
10楼:丙典淦宛菡
调用它的父类的paint***ponent函数,如果不写super,调用的是子类的paint***ponent函数
c#里的using语句是什么意思
11楼:依岚软件
使用using语句最终生成的其实是一个try, finally**块,在finally**块里释放资源。要求是:为 using 语句提供的对象必须实现 idisposable 接口。
此接口提供了 dispose 方法,该方法将释放此对象的资源。
你的问题其实可以这样解释:
在using中其实打开了一个数据库连接,然后从数据库中读取了某些数据,最后不管读取是否成功,都应该把这个数据库连接关闭掉。
传统的写法应该是在try块里打开连接并且读取,在finally块中把连接关闭掉,而由于你的sdr对象实现了idisposable接口,所以c#允许你用using语句来代替这种写法,其实这就是一种语法糖,一种简便写法而已。
当程序运行完这个**块(超出大括号的范围)后,sdr就会被自动关闭掉。
12楼:华华兮
就对于你上面这句话而言,因为数据库open之后,最后一定要close,即在**最后写conn.close();但是用了using语句后,当执行完using语句中的**,退出using语句时,close()方法会自动帮你执行,把数据库连接关闭。方便了**的书写和以免程序员忘记关掉数据库连接。
13楼:匿名用户
using 引入名称空间或者使用非托管资源其中引入名称空间通俗的说
就是我们程序中最顶部的**
如:using system;
楼主取的例子应该是使用非托管资源,
我们一般使用的是托管资源,不用后系统会自动释放内存,而有些我们自己定义的非托管资源就需要我们手动的去释放空间
14楼:匿名用户
c# 程序员参考
using 语句请参见
c# 关键字 | using 指令 | 实现 finalize 和 dispose 以清理非托管资源
using 语句定义一个范围,在此范围的末尾将处理对象。
using (expression | type identifier = initializer) statement
其中:expression
希望在退出 using 语句时调用 dispose 的表达式。
type
identifier 的类型。
identifier
type 类型的名称或标识符。定义一个以上 type 类型的 identifier 是可以的。在每一个 identifier = initializer 的前边都有一个逗号。
initializer
创建对象的表达式。
statement
嵌入的语句或要执行的语句。
备注在 using 语句中创建一个实例,确保退出 using 语句时在对象上调用 dispose。当到达 using 语句的末尾,或者如果在语句结束之前引发异常并且控制离开语句块,都可以退出 using 语句。
实例化的对象必须实现 system.idisposable 接口。
15楼:匿名用户
2楼找到资料对的,你要知道像文件,数据库连接这些是非托管资源.***不会自动去释放他们,一般需要你手动关闭。当使用using时,如果对象实现了system.
idisposable接口,他就会在使用完释放掉。
16楼:朝夕相处
1.using语句:定义一个范围,将在此范围之外释放一个或多个对象。
2.语法:
using (font font1 = new font("arial", 10.0f))
3.c# 通过 .*** framework 公共语言运行库 (clr) 自动释放用于存储不再需要的对象的内存。
内存的释放具有不确定性;一旦 clr 决定执行垃圾**,就会释放内存。但是,通常最好尽快释放诸如文件句柄和网络连接这样的有限资源。
4.using 语句允许程序员指定使用资源的对象应当何时释放资源。为 using 语句提供的对象必须实现 idisposable接口。
此接口提供了 dispose 方法,该方法将释放此对象的资源。
5.可以在到达 using 语句的末尾时,或者在该语句结束之前引发了异常并且控制权离开语句块时,退出 using 语句。
17楼:匿名用户
相当于局部变量,在{}的对象会自动释放
不用调用相关的dispose()方法
留步帮忙下这样定义是个什么方法 public static t cloneobject
18楼:匿名用户
这个方法涉及到两个知识点:
1)泛型
2)扩展方法
先抛开“扩展方法”不提,这个方法属于“泛型方法”(注意:不是泛型类)。
以下为简单示例:
public static t tostring(t obj)
假设调用:
tostring(2);
等效于:
public static int tostring(int obj) // 原来的 t 被替换为 int
假设调用
tostring("mystring");
等效于:
public static string tostring(string obj) // 原来的 t 被替换为 string
通过以上例子可以看出,泛型参数 t 其实就是一个“类型占位符”,在编译时或运行时动态的替换为实际数据类型。我想你现在可以大致理解泛型方法了吧?
最后备注:where t : class 表示约束泛型参数 t 必须是引用类型,不能是值类型。
扩展方法:
是指在某个类型上,扩展出一个方法(属于编译技术,俗称:语法糖)。
cloneobject(this t obj) 意思,是指在类型 t 上扩展一个 cloneobject 方法。
这个 t 是泛型参数:
1)如果泛型参数是 string 则表示在 string 上扩展 cloneobject 方法
2)如果泛型参数是 arraylist 则表示在 arraylist 上扩展 cloneobject 方法
3)如果泛型参数是其它 ***xx 类,则表示在 ***xx 类上扩展 cloneobject 方法
以上为原理解释,实际运行效果,如一楼“风声正乱”所述,此处不再赘述。
python有哪些好玩的语法糖,Python 有哪些好玩的语法糖
1楼 匿名用户 装饰器就是一个很有用的语法糖啊 2楼 匿名用户 1 无输入参数 2 不能显式return 3 块中def定义的函数并不作为这个 假 函数的闭包! 3楼 匿名用户 keep looking don t settle python 有哪些好玩的语法糖 4楼 天天不看 当然是函数式那一套黑...
什么是语法手段,什么是语法手段,语法结构,1.什么是语法
1楼 匿名用户 语法手段是表达语法意义的形式标志或物质手段的类型,是从语法形式中概括出来的。常见的语法手段有 1 选词 进入结构的词首先要在语法的词类中选择。如 读书 之所以是述宾结构,是从 读 和 书 的词类确定的。 2 词序 例如汉语主语在前,谓语在后 日语的宾语在后,主语在前。 3 虚词 例如...
什么是词汇的语法意义,什么是词的语法意义?
1楼 安静爱你宝宝 语法意义就是语法形式所表示的内涵,这是从词的功能划分出来的一个类别,与之相对应的是词的词汇意义。实词既有词汇意义,也有语法意义,能充当句法成分 虚词没有词汇意义,只有语法意义,不能充当句法成分。 例如,动词 吃 打 走 坐 既有具体的含义,又能直接在句子中做谓语中心语,而像 的 ...