草庐IT

kotlin-experimental

全部标签

[Kotlin Tutorials 21] 协程的取消

协程的取消本文讨论协程的取消,以及实现时可能会碰到的几个问题.本文属于合辑:https://github.com/mengdd/KotlinTutorials协程的取消取消的意义:避免资源浪费,以及多余操作带来的问题.基本特性:cancelscope的时候会cancel其中的所有childcoroutines.一旦取消一个scope,你将不能再在其中launch新的coroutine.一个在取消状态的coroutine是不能suspend的.如果一个coroutine抛出了异常,它将会把这个exception向上抛给它的parent,它的parent会做以下三件事情:取消其他所有的childr

From Java To Kotlin 2:Kotlin 类型系统与泛型

上期主要分享了FromJavaToKotlin1:空安全、扩展、函数、Lambda。这是FromJava toKotlin 第二期。FromJava toKotlin 关键在于思维的转变。表达式思维Kotlin中大部分语句是表达式。表达式思维是一种编程思维。编程思维是一种非常抽象的概念,很多时候是只可意会不可言传的。不过,从某种程度上看,学习编程思维,比学习编程语法更重要。因为编程思维决定着我们的代码整体的架构与风格,而具体的某个语法反而没那么大的影响力。当然,如果对Kotlin的语法没有一个全面的认识,编程思维也只会是空中楼阁。就像,我们学会了基础的汉字以后开始写作文:学了汉字以后,如果没掌

android - 在 Kotlin for Android 中编程时使用 RxAndroid 或 RxKotlin?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭7年前。Improvethisquestion我将开始在我的Android项目中使用响应式编程。我使用Kotlin作为主要语言,现在我想申请Rx。我的第一选择是RxAndroid,但后来我注意到有RxKotlin。据我所知,两者都是从RxJava派生的,所以RxAndroid可能为android常见任务提供了一些API。另一方面,RxKotlin开箱即用地支持lambas,并允许我避免将kotlin与java混合。在这种情况下,哪个是

android - 在 Kotlin for Android 中编程时使用 RxAndroid 或 RxKotlin?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭7年前。Improvethisquestion我将开始在我的Android项目中使用响应式编程。我使用Kotlin作为主要语言,现在我想申请Rx。我的第一选择是RxAndroid,但后来我注意到有RxKotlin。据我所知,两者都是从RxJava派生的,所以RxAndroid可能为android常见任务提供了一些API。另一方面,RxKotlin开箱即用地支持lambas,并允许我避免将kotlin与java混合。在这种情况下,哪个是

【Kotlin】集合操作 ⑤ ( Map 集合 | 获取 Map 值 | Map 遍历 | 可变 Map 集合 )

文章目录一、Map集合二、获取Map值三、Map遍历四、可变Map集合一、Map集合调用mapOf函数创建Map集合,键值对元素有两种初始化方式:使用to函数进行初始化:在参数中使用键to值的方式进行初始化;使用Pair对象进行初始化:传入Pair(键,值)进行初始化;to函数原型如下,其本质也是返回Pair类型的实例对象;/***从this和[that]创建类型为[Pair]的元组。*这对于创建噪音更少的[Map]字面量很有用,例如:*@samplesamples.collections.Maps.Instantiation.mapFromPairs*/publicinfixfunA,B>A

kotlin之when表达式

有java基础的同学知道switchcase语句intday=1;switch(day){case1:System.out.println("星期一");break;case2:System.out.println("星期二");break;case3:System.out.println("星期三");break;case4:System.out.println("星期四");break;case5:System.out.println("星期五");break;case6:System.out.println("星期六");break;case7:System.out.println("放

kotlin之when表达式

有java基础的同学知道switchcase语句intday=1;switch(day){case1:System.out.println("星期一");break;case2:System.out.println("星期二");break;case3:System.out.println("星期三");break;case4:System.out.println("星期四");break;case5:System.out.println("星期五");break;case6:System.out.println("星期六");break;case7:System.out.println("放

c++ - 使用 cmake 构建具有 "experimental/filesystem"的项目

我需要在我的项目中添加一个“实验/文件系统”header#includeintmain(){autopath=std::experimental::filesystem::current_path();return0;}所以我使用了-lstdc++fs标志并与libstdc++fs.a链接cmake_minimum_required(VERSION3.7)project(testcpp)set(CMAKE_CXX_FLAGS"-std=c++14-lstdc++fs")set(SOURCE_FILESmain.cpp)target_link_libraries(${PROJECT_NA

c++ - 使用 cmake 构建具有 "experimental/filesystem"的项目

我需要在我的项目中添加一个“实验/文件系统”header#includeintmain(){autopath=std::experimental::filesystem::current_path();return0;}所以我使用了-lstdc++fs标志并与libstdc++fs.a链接cmake_minimum_required(VERSION3.7)project(testcpp)set(CMAKE_CXX_FLAGS"-std=c++14-lstdc++fs")set(SOURCE_FILESmain.cpp)target_link_libraries(${PROJECT_NA

c++ - 使用 std::experimental::optional 实现列表

我想知道是否可以使用std::experimental::optional实现单个(也可能是双)链表。templatestructnode{std::experimental::optional>next;Tdata;};这种设计的优点/缺点是什么?是否可以使用新的c++1z功能来实现哨兵,或者完全摆脱它们?这是否也可以扩展到n-ary树? 最佳答案 不可能以这种方式实现链表,因为您的node-type总是不完整的。这是morecompleteexample这说明了这个问题:#include#includetemplatestruc