上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
日喀则网页制作

十四世纪初,大司徒绛曲坚赞战胜萨迦王朝,建立了帕竹王朝,得到元、明皇室的庇护,设了13个大宗溪,最后一个宗便叫做桑珠孜(意为如愿以偿,选址在日喀则),取名为溪卡桑珠孜。
元至正二十年(1360年)开始在宗山建造宗政府,建筑为桑珠孜宗堡。从此,日喀则的全名称溪卡桑珠孜,简称为溪卡孜,汉语译音为日喀则;日喀则始有建置。
1951年5月23日,中央人民政府与西藏地方政府签订了《中央人民政府和西藏地方政府关于和平解放西藏办法的协议》。11月15日中国人民解放军进驻日喀则。为便于行政管理,中央在日喀则、江孜分设二个分工委。
1956年4月22日,西藏自治区筹备委员会正式成立,在日喀则、江孜分设自治区筹备委员会基巧办事处(相当于地区)。
1970年,日喀则专区改为日喀则地区,地区驻日喀则县。辖日喀则、定结(驻江嘎)、拉孜(驻曲下)、聂拉木(驻冲堆)、谢通门(驻吉丁)、仲马(驻扎东)、康马、亚东(驻下司马)、岗巴、南木林、萨迦、定日(驻岗嘎)、吉隆(驻宗嘎)、昂仁、江孜、仁布、白朗(驻洛布穷孜)、萨嘎等18县。
1972年,萨嘎县由萨嘎迁驻加加。日喀则地区辖日喀则、定结(驻江嘎)、拉孜(驻曲下)、聂拉木(驻冲堆)、谢通门(驻吉丁)、仲巴(驻扎东)、康马、亚东(驻下司马)、岗巴、南木林、萨迦、定日(驻协嘎尔)、吉隆(驻宗嘎)、昂仁、江孜、仁布(驻强钦雪)、白朗(驻洛布穷孜)、萨嘎(驻加加)等18县。
1983年10月8日,国务院批准设立江孜地区,辖日喀则地区的亚东、康马、岗巴、江孜、仁布、白朗6县;山南地区的浪卡子县,驻江孜县江孜镇。
1986年9月12日,国务院批准撤销江孜地区,所辖的亚东、康马、岗巴、江孜、仁布、白朗6县划归日喀则地区;浪卡子县划归山南地区。
1983年10月8日,国务院批准设立隆格尔县,以仲巴县部分地区为其行政区域(注:实际上因故没有正式成立隆格尔县)。
1986年12月12日,国务院批准撤销日喀则县,设立日喀则市。日喀则地区辖1个县级市、17个县。
1997年,日喀则地区辖日喀则市和江孜、定结、南木林、仁布、白朗、康马、昂仁、亚东、拉孜、岗巴、仲巴、聂拉木、谢通门、萨噶、定日、萨迦、吉隆18个县(市)。
1999年9月21日,民政部批准撤销隆格尔县(注:实际上因故没有正式成立隆格尔县)
日喀则网页制作
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
补充几点:
1、field 关键字
这个问题对 Java 开发者来说十分难以理解,网上有很多人讨论这个问题,但大多数都是互相抄,说不出个所以然来,要说还是老外对这个问题的理解比较透彻,可以参考这个帖子:https://stackoverflow.com/questions/43220140/whats-kotlin-backing-field-for/43220314
其中最关键的一句:Remember in kotlin whenever you write foo.bar = value it will be translated into a setter call instead of a PUTFIELD.
也就是说,在 Kotlin 中,任何时候当你写出“一个变量后边加等于号”这种形式的时候,比如我们定义 var no: Int 变量,当你写出 no = ... 这种形式的时候,这个等于号都会被编译器翻译成调用 setter 方法;而同样,在任何位置引用变量时,只要出现 no 变量的地方都会被编译器翻译成 getter 方法。那么问题就来了,当你在 setter 方法内部写出 no = ... 时,相当于在 setter 方法中调用 setter 方法,形成递归,进而形成死循环,例如文中的例子:
var no: Int = 100 get() = field // 后端变量 set(value) { if (value < 10) { // 如果传入的值小于 10 返回该值 field = value } else { field = -1 // 如果传入的值大于等于 10 返回 -1 } }这段代码按以上这种写法是正确的,因为使用了 field 关键字,但是如果不用 field 关键字会怎么样呢?例如:
var no: Int = 100 get() = no set(value) { if (value < 10) { // 如果传入的值小于 10 返回该值 no = value } else { no = -1 // 如果传入的值大于等于 10 返回 -1 } }注意这里我们使用的 Java 的思维写了 getter 和 setter 方法,那么这时,如果将这段代码翻译成 Java 代码会是怎么样呢?如下:
int no = 100;public int getNo() { return getNo();// Kotlin中的get() = no语句中出来了变量no,直接被编译器理解成“调用getter方法”}public void setNo(int value) { if (value < 10) { setNo(value);// Kotlin中出现“no =”这样的字样,直接被编译器理解成“这里要调用setter方法” } else { setNo(-1);// 在setter方法中调用setter方法,这是不正确的 }}翻译成 Java 代码之后就很直观了,在 getter 方法和 setter 方法中都形成了递归调用,显然是不正确的,最终程序会出现内存溢出而异常终止。
2、嵌套类和内部类在使用时的区别
(1)创建对象的区别
也就是说,要想构造内部类的对象,必须先构造外部类的对象,而嵌套类则不需要;
(2)引用外部类的成员变量的方式不同
先来看嵌套类:
class Outer { // 外部类 private val bar: Int = 1 class Nested { // 嵌套类 var ot: Outer = Outer() println(ot.bar) // 嵌套类可以引用外部类私有变量,但要先创建外部类的实例,不能直接引用 fun foo() = 2 }}再来看一下内部类(引用文章中代码):
class Outer { private val bar: Int = 1 var v = "成员属性" /**嵌套内部类**/ inner class Inner { fun foo() = bar // 访问外部类成员 fun innerTest() { var o = this@Outer //获取外部类的成员变量 println("内部类可以引用外部类的成员,例如:" + o.v) } }}可以看来内部类可以直接通过 this@ 外部类名 的形式引用外部类的成员变量,不需要创建外部类对象;
3、匿名内部类的实现
引用文章中的代码
fun main(args: Array<String>) { var test = Test() /** * 采用对象表达式来创建接口对象,即匿名内部类的实例。 */ test.setInterFace(object : TestInterFace { override fun test() { println("对象表达式创建匿名内部类的实例") } })}特别注意这里的 object : TestInterFace,这个 object 是 Kotlin 的关键字,要实现匿名内部类,就必须使用 object 关键字,不能随意替换其它单词,切记切记。
applixy
org***126.com
参考地址
Cyandnow
c@c***dnow.com
关于 field 我也分享一下理解。
// 还是 JAVA 代码int no = 100;private int _no = 100;public int getNo() { return _no;//