Kotlin 类与对象概要
类与对象用class声明可以像普通函数一样使用构造函数创建类。 1val site = Runoob() // Kotlin 中没有 new 关键字 要使用类中的属性直接用.来引用即可。 主构造器,直接作为类头部的一部分,位于类名后。1class Person constructor(firstName: String) {} 如果没有特别的注解可以省略contstructor的关键字。如果构造器有注解,或者有可见度修饰符,这时constructor关键字是必须的,注解和修饰符要放在它之前。 getter和setter默认会实现getter方法和setter方法,val不会有setter方法。field指的就是存储在属性中的值。field 关键词只能用于属性的访问器示例: 1234567891011121314151617181920212223242526272829303132333435class Person { var lastName: String = "zhang" get() =...
数据类型、位操作、字符、数组、字符串
数据类型类型 -> 位宽度Double -> 64Float -> 32Long -> 64Int -> 32Short -> 16Byte -> 8 kotlin不支持8进制有10进制:2进制:0b开头16进制:0x开头且他的数据类型不会自动由精度低的向高精度的自动转型。必须严格限制类型。 位操作符对于Int和Long类型,还有一系列的位操作符可以使用,分别是: 1234567shl(bits) – 左移位 (Java’s <<)shr(bits) – 右移位 (Java’s >>)ushr(bits) – 无符号右移位 (Java’s >>>)and(bits) – 与or(bits) – 或xor(bits) – 异或inv() – 反向 字符kotlin中的字符不能直接和数字比较,也就是不能直接转化为ASCII码。除非显式转化为Int类型 ...
可变长参数函数vararg
函数fun函数也可以用public来修饰 可变长参数函数vararg1234567891011fun main() { println("hello,world") print(sum(1,4,23,4,23,52))}public fun sum( a:Int,vararg b:Int):Int{ var result = a for (bn in b){ result += bn } return result} vararg既可以一个一个的传入参数,也可以将一个定义好的数组当作参数传入,可以用*前缀来引用该数组
国内镜像源配置:Maven,Gradle,Kotlin
配置国内镜像源maven全局配置:在Maven的安装目录下的conf/settings.xml添加mirror源 123456789101112131415161718<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <!-- 添加以下这段 Mirror 配置 --> <mirrors> <!-- Aliyun...
Vue 插槽:复用组件的定制内容
默认插槽slot一般出现情况,当你要复用一个组件时,但是这个组件中你复用的只有他的框架,他的所有内容你都需要根据具体内容再次修改。而如果你在组件中添加v-show来实现上述要求时,会让结构变得非常混乱,无法正常阅读源码。因此最好的方法是每个组件再单独提供一些html结构和样式。所以vue提供了一个方法,插槽:在组件中需要使用当你没有向我传递值时,我会展示到页面上来表示哪里需要插入新的结构。然后在引用该组件的地方写好插槽的内容。例如:Student是组件,在app中 12345<div id="app"> <Student> <img src=""> </Student> </div> 这样子,在Student的slot标签处,就会被插入img标签 具名插槽可以给每个插槽命名,通过不同的插槽,插入到不同的位置。 12<slot...
嵌套、属性、乘法、编号、文本操作符
嵌套操作符 引用自知乎> (子元素)div>ul>li表现为: 12345<div> <ul> <li></li> </ul></div> + (兄弟元素)div+p+bq表现为: 123<div></div><p></p><blockquote></blockquote> ^ 返回上层 使用 ^ 运算符,您可以爬上树的一个层次,并更改上下文div+div>p>span+em^bq表现为:123456<div></div><div> <p><span></span><em></em></p> <blockquote></blockquote></div>// 此时的上下文返回到两个div所在的这一层了 当然了,^...
对象属性合并
合并对象this.info = {…this.info,…dataObj)它会将this.info和dataObj的所有属性合并,如果有重复的,优先取后边dataObj的。最后整合后提交给this.info
配置代理服务器和样式文件优化
配置代理服务器(方式1)前端从8080访问5000端口时会被cros拦截,因此在vue.config.js下配置一个代理服务器,他会替你转发命令 1234//开启代理服务器devServer: { proxy: 'http://localhost:5000'} 不太完美 更好的方法。(方式2)开启代理服务器 12345678910111213141516devServer:{ proxy: { //请求前缀,(路径名) '/api': { target: '<url>', pathRewrite:{'^/api':''}//用于去处前缀发送一个不带前缀的请求。 //当然,可以选择和后端服务器统一前缀,这样也可以不用去除前缀发送。 ws: true,//用于支持websocket ...
axios Promise 响应封装
axiosaxios也是返回一个promise对象,他会封装两个结果,成功即为response,需要取出从服务器获得的响应数据,response.data。失败为error,需要获取为error.message。
Fetch API:Promise 驱动的异步请求
Fetchfetch是与xhr不同的另一种发送请求的方法。他本身也是一种已经实现的API。他并不需要通过回调请求,而是采用了promise的返回结果方式,采用了链式结构。 当接收到一个代表错误的 HTTP 状态码时,从 fetch() 返回的 Promise 不会被标记为 reject,即使响应的 HTTP 状态码是 404 或 500。相反,它会将 Promise 状态标记为 resolve(如果响应的 HTTP 状态码不在 200 - 299 的范围内,则设置 resolve 返回值的 ok 属性为 false),仅当网络故障时或请求被阻止时,才会标记为 reject。 fetch 不会发送跨域 cookie,除非你使用了 credentials 的初始化选项。(自 2018 年 8 月以后,默认的 credentials 政策变更为 same-origin。Firefox 也在 61.0b13 版本中进行了修改)123fetch('http://example.com/movies.json') .then(response =>...