dependencies { classpath 'org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.15' } 然后再module的build.gradle...中加入apply plugin: ‘org.jetbrains.dokka-android’ (必须保证在com.android.application的下面或者就放在最下面) apply plugin...成功后,在module下的build目录libs下就能看到两个jar包 ? 打开app-javadoc.jar即可看到生成的文档 ?...以上这篇Android studio 生成带Kotlin文档的实现方式就是小编分享给大家的全部内容了,希望能给大家一个参考。
背景描述 有一个旧域名xxxx.misiyu.cn 是以前临时用的,然后目前启用正式域名了,想要把旧域名(xxxx.misiyu.cn )跳转到正式域名,并且是要附带域名后面的参数。...解决办法 网上查了下,其实也简单,利用Laravel现成的一些方法即可。....*'); }); 以上默认匹配的参数是如:http://www.lzpan.com/details/c47fc120b4b3f882ec85399696d21c28ac642bdf.html 后面的.../details/c47fc120b4b3f882ec85399696d21c28ac642bdf.html,也即以/分割匹配的,分割后换成http://新域名/details/c47fc120b4b3f882ec85399696d21c28ac642bdf.html...分割的参数,自行替换即可。
——林语堂 今天升级了kotlin版本1.9.0 发现了个新特性 https://kotlinlang.org/docs/whatsnew19.html#stable-operator-for-open-ended-ranges...这个是用来取代以前的until函数的 fun main() { for (number in 2 until 10) { if (number % 2 == 0) {
在创建uiview的时候,uiview的内部会自动创建一个层(calayer对象)通过uiview的layer属性可以访问这个层。...换句话说,uiview本身并不具备显示功能,它的内部的层才有显示功能。 CALayer的基本功能 通过操作CALayer对象,可以调整uiview的一些外观属性。...比如阴影,圆角,边框的颜色等、 项目中的具体使用 1.做渐变。...rotationAnimation2.autoreverses = NO;//此行是控制是否倒转,yes为倒转,no为不倒转 rotationAnimation2.repeatCount...= MAXFLOAT; rotationAnimation2.beginTime = 0.8; //延时执行,注释掉动画会同时进行 rotationAnimation2.duration
一、kotlin如何抛异常 Kotlin中的异常处理与Java或者其他语言中的处理方式相似。一个函数可以以正常方式结束,或者当错误发生的时候抛出异常。...Kotlin中的异常处理语句的基本形式和Java是相似的: java中: if(0 <= percentage <= 100){ throw new IllegalArgumentException...( "A percentage value must be between 0 and 100: $percentage") ; } kotlin中:(和java的区别,不必使用new来创建实例) if...三、try作为一个表达式 为了显示Java和Kotlin直接一个重要区别,让我们稍微改变下这个例子。移除fianlly部分(因为你已经知道这个怎么工作),然后加一些代码打印从这个文件读取的数字。...四、总结 1、kotlin中的异常处理和java处理相似,除了Kotlin不要求你声明函数可以抛出的异常。 2、如果一个try代码块执行一切正常,代码块中最后一个表达式就是结果。
本章内容包括: 处理 null 的可空类型和语法 基本数据类型和它们对应的Java类型 Kotlin 的集合,以及它们和Java的关系 6.1 可空性 /**------------...----------------------*/ // Kotlin和Java最重要的区别:对可空类型的显式的支持。...// Kotlin中所有泛型类和泛型函数的类型参数默认都是可空的。...} } 总结 Kotlin 对可空类型的支持,可以帮助我们在编译期,检测出潜在的NullPointerException错误。 Kotlin 提供了像安全调用(?.)...当你在 Kotlin 中继承 Java 类或者实现 Java 接口时,你需要仔细考虑参数的可空性和可变性。 Kotlin的Array 类就像普通的泛型类 但它会被编译成 Java 数组。
https://blog.csdn.net/u010105969/article/details/79877908 背景: 在项目中的一个网页中有一个“换一换”按钮,点击更换页面上的书籍。...在原生页面也有一个“换一换”按钮,该按钮样式和功能都和网页中的“换一换”按钮一样。两者不同的是点击网页中的“换一换”按钮,按钮上的图片会有一个360度旋转的动画效果,而原生的没有任何效果。...代码: - (void)changeAction:(UIButton *)changeBtn{ CABasicAnimation* rotationAnimation; rotationAnimation...= YES; rotationAnimation.repeatCount = 2; [changeBtn.imageView.layer addAnimation:rotationAnimation...forKey:@"rotationAnimation"]; } 效果图: ?
About Kotlin(2) 继续昨天的部分。介绍Kotlin中的类。...Kotlin中的类 抽象类和接口 抽象类 跟Java一样,使用abstract关键字 open class Base{ open fun f(){} } abstract class Derived...val demo = Outer().Inner().foo() 嵌套类 不用inner标记,直接写在类的内部的类,在kotlin中称为所谓的嵌套类 class Outer{ private val...override fun signal()=TALKING };//这里需要用分号分割 abstract fun signal():ProtocolState } Object类(及匿名类) 在Kotlin...接下来,也还是会按照参考文章的这个思路。记录Kotlin中的属性。方法。修饰符。
大家好,又见面了,我是你们的朋友全栈君。 一、使用场景 微博、短信、微信在推送信息的时候都有字符的数量限制,如果分享一个长网址,很容易就超出限制,发不出去。...短信、微博中字符数超级严格一旦超过了规定的字符数。就会导致信息发送失败! 综上几个现在最长的场景,很显然,要尽可能的短的链接。因此在很多时候我们需要用到短网址!...三、使用工具推荐 短链接在线生成工具: ①、http://maiyurl.cn/ ②、http://dogdwz.cn/ 使用说明: 1、复制要缩短的网址。打开上述平台提供的缩短网址服务。...2、将要缩短的URL粘贴到缩短器字段中。把你的光标放在剪贴板的网站上,然后粘贴到复制的URL中。Ctrl +V(Win)命令+V(MAC)。点击“生成”按钮。...所有更短的网站都有一个按钮旁边的URL字段,点击时,它会为您创建缩短的URL。您的新缩短的URL将被显示。自己保存好缩短的链接就可以了!
About Kotlin(1) 因为是从Java的角度来学习Kotlin,在Java中,类作为第一等公民。故学习Kotlin,也先从其的类开始。...Kotlin中的类 普通的类 class Kotlin中没有添加修饰符直接以class开头的都是final类。final类的意义在于JVM可能存在的优化(常量和方法内联)和防止继承的滥用。...构造方法 Kotlin中一个类有一个primary的构造方法和可以多个的secondary的构造方法。...Kotlin社区有人对这个 “默认的final” 设计很不满。Kotlin论坛对此进行了激烈的讨论。...在Kotlin中,override不是可选的注解而是强制关键字。所以由此引发的bug就不会再有了,编译器会提前警告你。Kotlin把这些事清楚的展现出来。
最近在写Hexo主题的时候和在使用中,发现hexo默认生成以后的永久链接有点反人类,是根据文章标题生成的,这里也许就会出现大量中文,日文,韩文,颜文字,emoji啥的一些比较奇怪的内容,担心会出现什么灵异事件...在网上搜索了一下,有使用翻译的把文章标题翻译为单词,还有直接转拼音的,但是这样做了以后文章链接会非常的长,也感觉比较繁琐,个人感觉不是很喜欢 所以最后就自己在主题里写了一个小脚本来创建我比较喜欢的永久链接...,其内容为文章的创建时间,格式为YYYY-MM-DD-HH-mm-ss,因为是个人博客,所以感觉用时间是完全足够用了,也简单明了 解决思路也很简单,给Hexo添加一个渲染之前的过滤器,在里面替换文章的slug...内容为格式化以后的时间 代码如下: hexo.extend.filter.register('before_post_render', function(data) { if (!...config.yml设置permalink为true permalink: true 修改Hexo根目录下的_config.yml设置permalink,添加:slug permalink: :year
= [NSNumber numberWithFloat:1]; rotationAnimation.fromValue = [NSNumber numberWithFloat:-1];...rotationAnimation.duration = 1.0f; rotationAnimation.repeatCount = MAXFLOAT; rotationAnimation.removedOnCompletion...= NO; rotationAnimation.autoreverses = YES; rotationAnimation.timingFunction = [CAMediaTimingFunction...functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; rotationAnimation.fillMode = kCAFillModeForwards...; [self.sharkTagButton.layer addAnimation:rotationAnimation forKey:@"revItUpAnimation"]; 注意: 如果
kotlin中的集合 Kotlin中的集合分为两派:可变集合与不可变集合 ?...,而是一个普通的函数 kotlin中的集合与Java中集合的关系 接下来让我们看一下创建的对象类型: println(list.javaClass) //class java.util.Arrays$ArrayList...set.javaClass) //class java.util.LinkedHashSet println(map.javaClass) //class java.util.LinkedHashMap 如你所见,Kotlin...为什么Kotlin没有自己专门的集合类呢? 答: 因为使用标准的java集合类可以更好的和java交互。kotlin与java互调不用考虑集合类的转换。...尽管如此Kotlin并没有止步,而是在此基础上增加了很多方法,如: 获取列表中的最后一个元素,或者得到一个数字列表的最大值: val strings = listOf("first",
浪子挥霍的是他的祖业,财迷葬送的却是他自己。...KtQueryWrapper时,需要如下使用: KtQueryWrapper(User::class.java).eq(User::name, "sss").eq(User::roleId, "sss2") 这里的User...::name是一个KProperty,其文档:https://kotlinlang.org/docs/reflection.html 可以使用KProperty的name属性获取到其属性名 User::...name.name 当然其还有很丰富的其他属性、函数 在项目中使用其,需要先引入kotlin-reflect依赖 org.jetbrains.kotlin... kotlin-reflect
CABasicAnimation* rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z..."]; rotationAnimation.duration = 0.3f; rotationAnimation.repeatCount = 1; rotationAnimation.autoreverses...= NO; rotationAnimation.fromValue = [NSNumber numberWithFloat: beginValue*M_PI]; rotationAnimation.toValue...= [NSNumber numberWithFloat:endValue*M_PI]; rotationAnimation.removedOnCompletion = NO; rotationAnimation.fillMode...]; [pinLayer addAnimation:rotationAnimation forKey:@"revItUpAnimation"]; 关键帧动画(CAKeyframeAnimation
过滤列表 找出列表中满足某个条件的所有元素。使用filter方法。其中x是自己定义的参数名。...只可读的列表 只能读,不能写的列表。用listOf方法。 val readOnlyList = listOf("a", "b") 上面得到的readOnlyList是没有add相关方法的。 6....只可读的map 使用mapOf方法得到只读的map。...= -1) { /* 流操作 */ } kotlin中,使用also while (((inputStream.read(tmp)).also { len = it }) !...= -1) { /* 流操作 */ } kotlin 资料分享 140集 Kotlin 入门到精通全系列(项目开发实战)视频教程 [1240] [1240]
自从有了kotlin,一切都不一样了。...jackson-kotlin-module提供了基于reified的简化版本 inline fun ObjectMapper.convertValue(from: Any): T...kotlin也是基于Jvm平台的,那kotlin中是如何实现泛型参数传递的呢。我们可以通过反编译字节码一窥究竟。...kotlin的readValue倍直接展开到main函数中 另外jacksonTypeRef被转换换成AppKt$main$$inlined$readValue$1类型直接包含了泛型参数String...限制 其实即便kotlin用inline实现了泛型代码运行时携带泛型信息,也没有达到C++模板展开的层次。
addRotationAnimation:(__kindof UIView *)view withDuration:(CFTimeInterval)dutation { CABasicAnimation *rotationAnimation...= [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; rotationAnimation.toValue = [...NSNumber numberWithFloat: -M_PI * 2.0]; rotationAnimation.duration = dutation; rotationAnimation.cumulative...= YES; rotationAnimation.repeatCount = MAXFLOAT; rotationAnimation.removedOnCompletion = NO;...[view.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"]; } 效果图如下: ?
可以看到两段代码的结果是一样的。...rotationAnimation]; }else { [_mcTabbar.centerBtn.layer removeAllAnimations]; } } //旋转动画 -...(void)rotationAnimation{ CABasicAnimation *rotationAnimation = [CABasicAnimation animationWithKeyPath...:@"transform.rotation.z"]; rotationAnimation.toValue = [NSNumber numberWithFloat:M_PI*2.0]; rotationAnimation.duration...= 3.0; rotationAnimation.repeatCount = HUGE; [_mcTabbar.centerBtn.layer addAnimation:rotationAnimation
一、Kotlin的历史 Kotlin是由JetBrains团队于2011年开发的编程语言,其命名源于圣彼得堡附近的一个岛屿科特林岛,创立之初受到当时主流的各种语言的影响,与Java同样能为JVM所解释...,这就意味着Kotlin可以直接使用Java开发的各种库以及框架,由于吸收了众多语言的优秀特性,于2017年被谷歌确定为Android开发的官方语言,同样也受到Spring,SpringBoot等服务端的开发的支持...,使得Kotlin可以完整的开发出一款软件。...Kotlin的特性那就太小看它了,它解决了让全世界程序员最头疼的问题——空指针异常,可能基本上大部分人最不想看到的就是这个,Kotlin在编译前的代码检查阶段就可以发现潜在的空指针,基本上很难在运行阶段再次出现空指针...Kotlin是一个函数型编程语言,这有别于Java,意味着它做了更多的封装工作,简化Java的代码又是它的一大特点,开发者友好型语言就是说它了,所以Kotlin是Java某种程度上的一个补充,让我们在开发时多一种选择
领取专属 10元无门槛券
手把手带您无忧上云