-
2021-03-06 23:33:12
语法糖(Syntactic sugar):
计算机语言中特殊的某种语法
这种语法对语言的功能并没有影响
对于程序员有更好的易用性
能够增加程序的可读性
简而言之,语法糖就是程序语言中提供[奇技淫巧]的一种手段和方式而已。 通过这类方式编写出来的代码,即好看又好用,好似糖一般的语法。固美其名曰:语法糖
一个简单的例子
假设:有2个数字,现需要从中得到最大的那个数字。如何实现?
b = 2
c = 3
if b > c:
a = b
else:
a = c
其实还有更多的其它实现方式:
a = max(b, c)
a = c > b and c or b
a = c if c > b else b
a = [b, c][c > b]
这些都是可以实现我们需求的方法,殊途同归。但是它们在易用性、简洁性、可读性、性能等方面的表现都不一样。那么问题来了!
哪个才是我们所说的语法糖呢?
一些常见的语法糖
a = b = 2; c = 3
b, c = c, b
a < c < b < 5
'1' * 100
[1,2,3,4] + [5,6,7,8]
可以看到这些语法,在其它语言里通常不会出现的。但是在Python中却神奇的被支持了,所以这些都是当之无愧的Python语法糖。
切片操作
像列表这类可以支持**切片**操作的对象,则是我最初喜欢Python的一个非常重要的原因。
l = [1, 2, 3, 4, 5]
l[2]
l[:3]
l[3:]
l[2:4]
l[:-1]
l[:]
l[::2]
else语法糖
Python中提供一类else的语法,它可以在原有语法基础之上,支持更多一种情况的选择。 主要有for-else,while-else,try-else。需要注意的是,for-else和while-else需要和break语句配合时使用。
for else
for i in range(1):
print(i)
break
else:
print('for end')
while else
i = 1
while i:
print(i)
i -= 1
break
else:
print('while end')
try else
try:
1 / 1
except Exception as e:
print('except occured')
else:
print('it is fine')
finally:
print('i am finally')
函数相关语法糖
Python中函数我们都非常的熟悉,而在函数的使用上却有着与其它语言不同的选择。
动态参数
def example_dynamic_args(*args, **kwargs):
'''动态参数'''
print(args)
print(kwargs)
这个函数的参数与函数相比,其参数会有些不同之处。因为它们在接收参数时使用了不同方式。
example_dynamic_args(1,'2', True, name='xiaowu', age=18)
l = [1,'2',False]
d = {'name': 'xiaoming', age: '16'}
example_dynamic_args(*l, **d)
匿名函数
匿名函数在很多的语言中都存在,通常在临时需要一个函数的场景下使用。
lambda x: x * 2
Python中使用lambda表达式来实现匿名函数,观察上面的lambda表达式。其特点如下:
可以接受函数
函数体只有一个表达式
无需显式的return语句
整个表达式在一个语法行内实现
值得注意的是,lambda表达式除了一些语法上的限制之外;其它函数该有的特性它都有。比如:支持动态参数。下面是一个使用lambda表示的场景:
in_dict = {'a': 10, 'b': 2, 'c': 3}
print('in_dict:', in_dict)
out_dict = sorted(in_dict.items(), key=lambda x: x[1])
print('out_dict', out_dict)
推导表达式
推导表达式是Python中常见的语法糖,在很多的数据处理场景中,我们可能会使用的到。 最常见的就是列表推导表达式,可以用来过滤、处理列表中的子项并输出一个新的列表。除此之外还有几个推导式也是非常好用的。
列表推导表达式
in_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 8, 7]
print('array before:', in_list)
array = [i for i in in_list if i % 2 != 0] # 列表推导表达式
print('array after:', array)
生成器推导表达式
in_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 8, 7]
print('array before:', in_list)
array = (i for i in in_list if i % 2 != 0) # 生成器推导表达式
print('array after:', array)
集合推导表达式
in_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 8, 7]
print('array before:', in_list)
array = {i for i in in_list if i % 2 != 0} # 集合推导表达式
print('array after:', array)
字典推导表达式
in_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 8, 7]
print('array before:', in_list)
array = {i: i * 2 for i in in_list if i % 2 != 0} # 字典推导表达式
print('array after:', array)
不同推导式在语法使用上基本一致,只是在返回对象的类型上有所差别。
yield表达式
yield语法也是Python中比较有特点的语法糖,可以说是特有的。虽然其它语言有实现类似机制的功能。 yield是Python中实现**协程(coroutine)**的一个重要基础。
def example_generator(in_list):
'''生成器'''
for i in in_list:
yield i * 2
装饰器
重要的往往在最后面,装饰器是学习Python绕不过去的坎。就像学习Java要理解面向对象和设计模式一样。 学习Python,你就应该要掌握好闭包、生成器、装饰器等相关知识。而对于编写高并发程序时则要掌握协程相关知识。
def example_decorator(func):
'''装饰器'''
def inner():
func()
return inner
更多相关内容 -
C#的自定义语法糖的使用详解
2020-12-31 05:37:50语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。... -
JS—ES6 class语法糖
2020-12-22 11:33:13JS—ES6 class语法糖: javescript语言中,生成实例对象的传统方式是通过构造函数,ES6为我们提供了更接近传统企业级语言的写 法。 首先我们先用构造函数的方式生成实例对象: 通过构造函数生成实例对象的特点:首... -
不了解这12个语法糖,别说你会Java
2020-08-25 18:40:37主要介绍了不了解这12个语法糖,别说你会Java,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
详解c# 切片语法糖
2020-12-16 21:39:42昨天在 github 上准备找找 C# 9 又有哪些新语法糖可以试用,不觉在一个文档上看到一个很奇怪的写法: foreach (var item in myArray[0..5]) 哈哈,熟悉又陌生,玩过python的朋友对这个 [0..5] 太熟悉不过了,居然在 ... -
Unity Promise语法糖
2019-11-14 17:39:37Unity中 使用类似JavaScript(es6)中的promise语法,以实现优雅的异步链式调用,Unity2019可用,用法: using RSG; 后面就和js差不多了 new Promise((resolve, reject) =>{ resolve(); }).Then(()=>{}); -
Kotlin实用的语法糖:空安全、类型转换 & 相等性判断
2020-12-21 21:49:39今天,我将主要讲解,关于Kotlin的一些实用语法糖,主要包括: 范围使用:in、downTo、step、until 类型检查 & 转换:is、智能转换、as 相等性:equals()、== 、 === 空安全 1. 范围使用 主要用于表示范围,主要... -
Golang学习日志 ━━ 函数传递指针参数的语法糖误区
2021-01-08 04:26:03一句话,函数传入指针参数可用语法糖省掉,但目前版本只针对结构体有效,如下* package main import ( fmt ) func main() { s1 := 2 fmt.Println(p1:, p1(&s1)) //p1: 3 s2 := 2 p2(&s2) fmt.Println(p2:, s2)... -
C#语法糖(Csharp Syntactic sugar)大汇总
2020-09-05 21:47:55首先需要声明的是“语法糖”这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换;而且可以提高开发编码的效率,在性能上也不会带来损失。这让java开发人员羡慕不已,呵呵。 -
Python装饰器语法糖
2020-09-19 19:08:44今天小编就为大家分享一篇关于Python装饰器语法糖,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 -
JS为什么说async/await是generator的语法糖详解
2021-01-19 18:21:27一句话,它就是 Generator 函数的语法糖。 可是,为什么这么说呢? 首先,比如说有一个异步操作,使用 async/await 语法来以同步模拟异步操作。 使用 async/await 实现一个 sleep 的功能 function sleep(time) { ... -
for Swift do-try-catch的语法糖-Swift开发
2021-05-27 06:39:24后备语法糖,用于Swift do-try-catch。 乍一看,值=尝试fallback(试试get(“ A”),尝试get(“ B”),尝试get(“ C”),尝试get(“ D”))等效于:do {value = try get (“ A”)} catch {后备语法糖,... -
tabler:为SQL支持的结构生成语法糖
2021-05-18 19:26:15为SQL支持的结构生成语法糖 介绍 给定具有标记字段的结构, tabler将生成返回字符串的方法,用于执行以下操作: 建立表格 放置表 插入行 选择行 有关更多信息,请参见。 安装 go get github.... -
Go语法糖之‘...’ 的使用实例详解
2020-09-20 01:36:26语法糖(Syntactic sugar),也译为糖衣语法,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。这篇文章主要给大家介绍Go语法糖之‘...’ 的使用,感兴趣的朋友一起看看吧 -
一个向Python添加一些反Python语法糖的库-Python开发
2021-05-25 17:21:44spell_sugar这个库向Python添加了一些反Python的“语法糖”。 注意:这仅仅是一个实验性的原型,它显示了Python中运算符重载的一些潜力。 仅在Python 3.6.0下进行了测试。 语法_糖这可以为Python添加一些反Python的... -
傻瓜式vuex语法糖kiss-vuex整理
2020-12-12 09:14:10前言 vuex 作为 vue 框架状态数据管理模块,诞生已有些许年头,它的出现很好地解决了兄弟组件响应式状态数据通信的问题。但是,vuex 的学习是一定门槛的,同时其声明和使用方式有一些不够简洁。... -
深入理解Java基础之try-with-resource语法糖
2020-08-26 08:33:46主要介绍了深入理解Java基础之try-with-resource语法糖,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
JS 异步编程与Promise async await语法糖
2021-01-20 13:31:40Promise 是异步编程的一种解决方案:从语法上讲,promise是一个对象,从它可以获取异步操作的消息;从本意上讲,它是承诺,承诺它过一段时间会给你一个结果。promise有三种状态:pending(等待态),fulfiled(成功态)... -
Python 之语法糖
2022-03-18 10:41:40目录 定义及意义 示例 赋值 索引与切片 条件表达式 map() 函数 with open() format() 函数 匿名函数 lambda 推导式 今天自学时听老师讲到“语法糖”,有点儿迷茫,赶紧忍住口水滴答的冲动,向度娘请教。 定义及意义 ...目录
今天自学时听老师讲到“语法糖”,有点儿迷茫,赶紧忍住口水滴答的冲动,向度娘请教。
定义及意义
语法糖(Syntactic sugar),也译为糖衣语法,由英国计算机科学家彼得·约翰·兰达发明的一个术语,指计算机语言中添加的某种语法。这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。
之所以叫“语法”糖,不只是因为加糖后的代码功能与加糖前保持一致,更重要的是,糖在不改变其所在位置的语法结构的前提下,实现了运行时的等价。可以简单理解为,加糖后的代码编译后跟加糖前一致。
之所以叫语法“糖”,是因为加糖后的代码写起来更爽,包括但不限于:代码更简洁流畅,代码更语义自然……写着爽,看着爽,就像吃了糖😂。
有人将语法糖归类为奇技淫巧,需要声明的是,“语法糖”这个词绝非贬义,它不是糖衣炮弹,更不是口蜜腹剑,它可以给编码带来实实在在的方便,也可以实实在在提高编码的效率,更重要的,在性能上也不会带来损失。
可见,语法糖是约定俗成的,为编译器所认可的,可以带来方便快捷的,编程语法。一定程度上而言,语法糖可以呈现于书本,流通于码界,也可以诞生于指尖。窃以为,能够带来编码便利的语法,皆可称为糖😁。
Python 中语法糖随处可见,宛如汉语中的成语和诗词,浩如星海,不胜枚举。本文仅取沧海数粟,供学习参考。
示例
赋值
a, b = b, a a, b, c = 1, 2, 3
索引与切片
索引和切片是 python 序列的拿手好戏,应用广泛。
条件表达式
a if b else c
详见:Python 之条件表达式左?还是右?,true 是个问题
https://blog.csdn.net/iprobobo/article/details/123537662
map() 函数
s = 'Shanghai' l = list(map(str, s))
详见:Python map() 函数之举重若轻映射的魅力
https://blog.csdn.net/iprobobo/article/details/122798133
with open()
with open(file_name, 'r', encoding='utf-8') as f: print(f.read())
format() 函数
format() 函数常用于格式化字符串,功能非常强大。
>>> '{1:.2f}, {0:.3f}'.format(3.1415926, 0.61803) '0.62, 3.142'
详见:Python 字符串格式化之 .format()信手拈来
https://blog.csdn.net/iprobobo/article/details/123584069
匿名函数 lambda
lambda 是一个很有特点的关键字,python 利用其来来创建匿名函数,活用该函数可以轻易解决很多问题。
例如,将一个学校的学生(student)按年级(grade)、身高(height)逆序排列,只需要一行代码:
student.sort(key = lambda x: (['grade'], ['height']), reverse = True)
再如将列表(list)对象排序,要求正数居前,负数殿后,且绝对值从小到大:
>>> list = [1, -2, 3, -4, 5, -6, 7, -8] >>> list.sort(key = lambda x: (x < 0, abs(x))) >>> list [1, 3, 5, 7, -2, -4, -6, -8]
详见:Python 匿名函数之 lambda解 lambda 之惑,有这一篇就够了😁
https://blog.csdn.net/iprobobo/article/details/123591952
推导式
推导式是 Python 中常见的语法糖,其中最常见的为列表推导式,可用来过滤、处理列表中的子项并输出一个新的列表。
>>> a = [i for i in range(10) if i % 2 != 0] >>> print(a) [1, 3, 5, 7, 9]
详见:Python 之推导式常用的语法糖
https://blog.csdn.net/iprobobo/article/details/123582135
……
还有很多很多语法糖,感兴趣的可以跟帖讨论🤗
-
vue3语法糖的使用和定义、语法糖中路由的使用、语法糖中状态管理的使用、语法糖中组件的传值
2022-06-11 15:28:26vue3语法糖的使用和定义、语法糖中路由的使用、语法糖中状态管理的使用、语法糖中组件的传值1.vue2和vue3区别
1.1 vue3中vue是一个对象,可以使用按需导入
import {createApp} from 'vue ’
1.2 导入区别
- vue2中使用的vue-router3.0导入的是构造函数 new VueRouter()
- vue3中使用的vue-router4.0导入的是对象 createRouter()
1.3 语法
vue2语法在vue3中都可以使用,除了过滤器并不能使用
2. vue3脚手架
脚手架中的路由有三种模式:历史模式history、哈希模式hash、抽象模式abstract
2.1 脚手架配置
vue create projectname------Manually select features--------Babel(js编译器)、Router、Vuex、CSS Pre-processors(css预处理器)
3.语法糖
3.1 组件的样式绑定
补:scss语法和less语法动态绑定数据
在vue中的setup函数中定义一个常量,vue3单文件组件中,支持style样式绑定变量,使用v-bind()引入动态值。组件中的数据只能绑定到组件内的标签上,组件外的标签绑定无效
setup(props) { const myColor = ref("red") const size = ref(20) const mySize = computed(() => { return size.value + "px" }) return { myColor, size, mySize } } body { background-color: v-bind(myColor); }
3.2 语法糖
vue3单文件组件提供了一种更简洁的语法结构,称之为“语法糖”
3.2.1 使用语法糖
1.在script标签上添加setup属性即变为糖衣语法,相当于整个script就是组件的setup函数
2.在语法糖中,省略了导出export default() 省略了setup函数,省略了return()
3.定义的数据无需return即可在模板和样式中调用
4.语法糖中,子组件导入即可使用,无需在components中注册
<script setup> import { ref } from "vue"; const count = ref(0) </script>
3.3语法糖组件传值
3.3.1 父传子
在父组件中子组件标签使用未定义的数据变量向子组件传值,在子组件的语法糖中使用defineProps()声明自定义属性用于接收父组件传值
defineProps定义props的函数,函数参数可以是一个数组直接接收数据,参数是一个对象用于属性验证。
获取父组件向子组件传值通过定义的defineProps函数返回值调用传递的值
<script setup> const props=defineProps(["msg","info"]) console.log(props.msg);//获取传值 </script>
3.3.2 子传父
在语法糖中使用defineEmits()注册自定义事件用于向父组件传值,返回是emit函数.在父组件中使用绑定自定义事件来拿到子组件向父组件的传值
defineEmits()函数参数是一个数组,用于定义自定义事件,可以是小驼峰也可以是全部小写,但是在绑定自定义事件书写应为全部小写。
子组件中:
<script setup> import { ref, watch } from "vue" const name = ref("") const emit = definedEmits(["myName"]) watch(name, newValue => { emit("myName", newValue) }) </script>
父组件:
<HelloWorld msg="123" @my-name="value=>{age=value}"/>
3.4 语法糖中的路由
在语法糖中需要用到路由信息对象route和路由配置对象router必须按需引入对象,才可以使用
3.4.1 在语法糖中引入路由
在语法糖中引入路由配置对象和路由信息对象:
import {useRoute, useRouter} from "vue-router"
3.4.2 在语法糖中使用路由
利用const定义一个常量定义路由
const route = useRoute() const router = useRouter()
3.4.3 在语法糖中实现路由跳转
html:
<button @click="goToHome">去主页</button>
javascript:
function goToHome() { router.push("/") }
3.5 语法糖的状态管理
在语法糖中使用状态管理首先也需要引入状态管理对象
3.5.1 引入状态管理
import { useStore } from "vuex"
3.5.2 定义状态管理仓库
在含有router的vue项目中store文件夹下的index.js文件中定义你所需要的状态管理的变量。仓库中state对象中定义变量isLogin。想要改变变量的值需要在mutations中定义修改变量的函数setisLogin,含有两个参数,第一个参数state为仓库中state定义的变量对象,第二个参数value是定义的新值。
import { createStore } from 'vuex' export default createStore({ state: { isLogin: false }, getters: {}, mutations: { setisLogin(state, value) { state.isLogin = value } }, actions: {}, modules: {} })
3.5.2.1 在语法糖中调用状态管理仓库中的变量
在组件使用之前,需要在js中导入store仓库才能使用状态管理。在组件中使用store.sate.isLogin打点调用仓库state对象中变量的值
引入状态管理仓库:
import { useStore } from "vuex"
显示状态管理仓库的变量
<h1>{{store.state.isLogin}}</h1>
3.5.2.2 改变状态管理仓库中的变量值
改变状态管理仓库中的变量值,需要现在状态管理仓库中的mutations对象中定义改变变量值的函数
export default createStore({ state: { isLogin: false }, getters: {}, mutations: { setisLogin(state, value) { state.isLogin = value } }, actions: {}, modules: {} })
在组件中使用状态管理对象的commit函数修改变量值,参数一为状态管理中的修改变量值的函数名,第二个参数是修改后的新的变量值
html:
<button @click="goToHome">去主页</button>
javascript:
function goToHome() { router.push("/") store.commit("setisLogin", true) }
-
jsx-vue-functional-一个Babel插件,为Vue功能组件带来语法糖。-Vue.js开发
2021-05-27 22:26:35弃用:检查https://github.com/vuejs/jsx而不是Vue JSX的JSX功能组件此babel插件向JSX添加了一些语法功能。 用法已弃用:检查https://github.com/vuejs/jsx而不是Vue JSX的JSX功能组件此babel插件向JSX添加了一些... -
Java语法糖
2022-03-29 21:14:34语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。...简介:
语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。——百度百科
目录
1.for-each
语法更简单,避免越界错误
for可以删除元素,for-each不可以删除/替换元素
for-each遍历时,不知道当前元素具体位置索引
for-each只能正向遍历,不能反向,也不能同时遍历2个集合
2.枚举
变量取值只在一个有限的集合内
enum关键字声明枚举类,且都是Enum的子类(不需写extends)
enum内部有多少个值,就有多少个实例对象
不能直接new枚举类对象
也可以添加属性/构造函数/方法
构造函数只能是private,default进行内部调用
3.不定项参数
普通函数的形参列表是固定的
不定项参数(可变参数)类型后面加...
本质是一个数组
一个方法只能有一个不定项参数,且必须位于参数列表的最后
重载的优先级规则
1.固定参数的方法,比可变参数优先级更高
2.调用语句,同时与两个带可变参数的方法匹配会报错
4.静态导入
import static 导入一个类的静态方法和静态变量(相当于简写)
静态方法名有明确特征,如有重名,需要补充类名
5.自动装箱与拆箱
简化基本类型和对象转换的写法
装箱:基本类型的值被封装为一个包装类对象
拆箱:一个包装类对象被拆开并获取相应的值
这是编译器的工作,在class中已经添加,虚拟机没有自动装箱和拆箱的语句
==:基本类型是内容相同,对象时指针是否相同(内存同一个区域)
基本类型没有空值,对象有null
当一个基础数据类型与封装类进行==、+、-、*、/运算时,会将封装类进行拆箱,然后再运算
6.多异常并列
把多个异常并列在一个catch中,简写,用|分隔
多个异常之间不能有继承关系,如果有会报错
7.数值类型赋值优化
整数类型用二进制赋值,避免进行运算
在数值字面量中使用下划线_
增加可读性和纠错功能
下划线只能出现在数字中间,前后必须有数字
允许在二/八/十/十六进制的数字中使用
8.接口方法
Java8 推出接口的默认方法/静态方法(带实现),为Lambda表达式提供支持
1.默认方法
规则:
1:默认方法不能重写Object中的方法
2:实现类可以继承/重写父接口的默认方法
3:接口可以继承/重写父接口的默认方法
4:当父类和父接口都有(同名同参数)默认方法,子类继承父类的默认方法,方便兼容以前版本
5:子类实现2个接口(均有同名同参数的默认方法),那编译错误,必须在子类中重写这个default方法(要用到super)
2.静态方法
只属于本接口,不属于子类/子接口
子类(子接口)没有继承该静态方法,只能通过所在的接口名来调用
3.私有方法(Java9接口的,带实现)
解决了多个默认方法/静态方法的内容重复问题
只属于本接口,只在本接口内使用,不属于子类/子接口
子类(子接口)没有继承该私有方法,也无法调用
静态私有方法可以被静态/默认方法调用,非静态私有方法被默认方法调用
接口VS抽象类
相同点:
都是抽象的,都不能被实例化(new),都可以有实现方法,都不需要继承者实现所有方法
不同点:
1.抽象类只能继承一个,接口可以实现多个
2.接口的变量默认是public static final,且必须有初值,子类不能修改;而抽象类的变量默认是default,子类可继承修改
3.接口没有构造函数,而抽象类有
4.接口没有main函数,抽象类可以有
5.接口有public/default/private的方法,抽象类有public/private/protected/default的方法
9.try-with-resource
程序如果打开外表资源,在使用后需要正确关闭
考虑异常因素,Java提供try-catch-finally来保证
JDK7提供try-with-resource,比try-catch-finally更简洁
try (FileInputStream fis = ...) { ... } catch (Exception e) { ... }
资源要求在try中,若已经在外面定义,则需要一个本地变量
FileInputStream fis = ...; try (FileInputStream fis2 = fis1) { ... } catch (Exception e) { ... }
JDK9不再要求定义临时变量,可以直接使用
FileInputStream fis = ...; try (fis) { ... } catch (Exception e) { ... }
原理:资源对象必须实现AutoCloseable接口,即实现close方法
10.ResourceBundle文件加载
Java8及以前,默认以ISO-8859-1方式加载Properties文件
需要利用native2ascii工具(JDK自带)对文件进行转义
JDK9及以后,默认以UTF-8方式加载
若解析文件不是有效的UTF-8,则以ISO-8859-1方式加载
11.var类型
Java10推出:局部变量推断
避免了信息冗余,对齐了变量名,更容易阅读
本质上还是强类型语言,编译器负责推断类型,并写入字节码文件
推断后不能更改
限制:
可以用在局部变量上,非类成员变量
可以用在for/for-each循环
声明时必须初始化
不能用在方法(形式)参数和返回类型
大面积滥用会使代码整体阅读变差
var只在编译时起作用,没有在字节码中引入新内容
12.switch
不支持long/float/double,剩下都可以
JDK12支持多分支合并,采用-> 直接连接判定条件和动作
JDK12支持直接在表达式赋值
文章持续学习与更新,欢迎大家指正!
-
详解es6超好用的语法糖Decorator
2020-10-18 07:14:51主要介绍了详解es6超好用的语法糖Decorator,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
Objective-C中的语法糖示例详解
2021-01-04 02:11:10语法糖 语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员... -
vue3的props与emit在语法糖与非语法糖中的使用
2022-02-22 17:28:28vue3的props与emit的使用(包含语法糖方式) 一、非语法糖中props 用于父组件接收(或触发)子组件利用组件属性传过来的数据(或方法), 触发(接收)子组件的方法(或数据) 1、父组件模板中是: @click ="method... -
Node.js-对express增加了语法糖的简单服务器
2019-08-09 22:20:46对express增加了语法糖的简单服务器 -
JAVA之语法糖
2020-09-04 10:51:04一、概念 编译器是一种计算机程序, 它主要的目的是将便于人编写...语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·兰丁发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能 -
Swift 初始化语法糖,更简介的语法实现组件初始化.zip
2019-09-24 06:17:06Swift 初始化语法糖,更简介的语法实现组件初始化.zip,快速初始化的超甜语法糖