首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

返回值函数LastnonBlank第2参数使用方法

值函数LastnonBlank第2参数使用方法 LastnonBlank(,) 参数 描述 column 列名或者具有单列表,单列表逻辑判断 expression...表达式,用来对column进行过滤表达式 第2参数是一个表达式,是对第一参数进行过滤表达式。...如果我们第二参数只写一个常数,则等同于返回列表最大值,主要差异表现在汇总合计上。 有2张表,一张是余额表,另外一张是日历表,并做关系链接。 ? ? 我们来看下3种写法,返回不同结果。...第1个度量,既然知道第2参数是常数,也就是返回最大值,日历筛选时候,因为汇总时候是没有指定值,所以返回空白。 第2个度量,是在日历表上进行筛选后进行返回最后日期,所以返回也不带有汇总。...第3个度量因为返回是相关表,也就是原表日期,所以返回时候也就有了汇总一栏。 如果觉得有帮助,那麻烦您进行转发,让更多的人能够提高自身工作效率。

2K10

一个值得深思小问题 - 请求中参数要不要携带该参数

我这朋友问题是这样,前端请求接口,带过去了一些参数,但是其中有个参数没值,也就是,但是呢后端在接收该值时候没有类型判断(该字段是int类型),相当于直接把一个空字符串直接转为int类型。...比如,请求参数如下 name=bigerfe&age=&a=1 其中参数age是int类型,但是前端传了,后端取参数时候报错了。...然后要出一个传参规范,声明string类型字段如果值空串,请求时候就不要携带该参数。其他类型会给一个默认值。...接口规范中每个字段说明其类型,并且给出默认值 服务端做统一类型验证,不符合直接给出错误码 那是被什么样问题给拍回去了呢? 如果这个字段是必填,而且是空串,那这个字段可以带吗?...比如我在后台要修改某个人信息,改为,怎么办?走不通了吧! 好了,别的不多说了,可能还有其他场景,大家可以留言来讨论。 最后,有时候我们可能觉得某些方案不合理,但是一时也想不出去为什么不合理?

3K20

Kotlin】扩展函数 ② ( 扩展属性 | 类型定义扩展函数 | 使用 infix 关键字修饰单个参数扩展函数简略写法 )

文章目录 一、扩展属性 二、可类扩展 三、使用 infix 关键字修饰单个参数扩展函数简略写法 一、扩展属性 ---- 上一篇博客 【Kotlin】扩展函数 ( 扩展函数简介 | Any 超类定义扩展函数...---- 之前讲定义扩展函数 , 扩展属性 , 都是 类型 定义 , 如果要为 可类型 定义扩展函数 , 则需要在 扩展函数 中 处理时 , 要多考虑一层 接收者 this 情况...; 注意下面的调用细节 : 如果定义 扩展函数 是 类型定义 , 可类型变量 想要调用该 扩展函数 , 在调用时使用 " ?....类型扩展函数 如果定义 扩展函数 是类型定义 , 可类型变量 想要调用该 扩展函数 , 在调用时直接使用 " . " 进行调用即可 ; 可类型实例对象.可类型扩展函数 代码示例...123abc this = null, string = abc, 接收者 abc 三、使用 infix 关键字修饰单个参数扩展函数简略写法 ---- 如果 扩展函数 只有 一个参数 , 并且在

1.9K30

Kotlin Android】一个列表带你领略Kotlin简洁之风

= null lateinit var value: A //A基础类型类 第一种方式,最完整声明方式; 第二种方式,省略变量类型声明,直接赋值,因为Kotlin带有自动推断变量类型功能;...来表明这个变量有可能为null,并赋值null; 第四种方式,如果你只想声明变量,那么可以使用lateinit关键来表明该变量在后面才进行初始化(注:基础类变量不能指定为lateinit,并且lateinit...fun fun1() { ... } ... } 如果类没有具体内部变量和方法,那么也可定义一个类,不需要类名后面的类体 [类属性] class A Kotlin类默认带有一个无参数构造函数...4,构造函数名字constructor,而非像Java用是类名 Kotlin 函数定义 Kotlin函数方法使用关键字 fun 来声明,关键字 override 表示该函数重写了父类方法,参数声明使用...来表示该变量可能为,如果变量真的null时,会跳过不执行。 ii)如果想和Java一样,在变量null时,抛出指针异常,那么可以在变量后加上“!!”

1.8K10

Kotlin简单问

kotlin安全 java中,我们可以任意初始化一个变量,而不需要赋值,比如String,就有它默认值null。 String a; 如果要调用对象参数,必须判: if (a!...=方式设置可以为。 val a: String ? = null 1)赋值时候,可以直接使用?来表示这个对象可能为,如果则表达式结果也,而不用进行判断。...String 也就是通过问号来表示对象则整个表达式结果,而不会报错指针。 2)如果需要设定为时候返回表达式值不为,可以用操作符?:来表示,也叫Elvis操作符。...//b则表达式返回-1 val length = b?.length ?: -1 3)如果要将值转换为类型,就可以使用 !!...来标识,但是这种操作符就有可能会抛出指针异常,如果实际对象的话。所以这种操作符相当于去除了判断。 //如果b指针异常 val length = b!!.

85030

是时候使用Kotlin编程了

从事Android开发童鞋都知道,自从去年Google I/O大会上Kotlin定为Android开发官方语言以来,关于Kotlin就成为每个开发人员学习目标,的确,Kotlin以它独有的魅力正在吸引这传统...并吸收了其他语言优点:模板字符串,运算符重载,方法扩展,命名参数等。 2,安全性 Kotlin提供了安全符“?”,当变量可以为null时,必须使用可安全符?进行声明,否则会出现编译错误。...伴生对象调用跟Java一样,通过类名.属性名称或函数名称调用。 新特性 1,安全 在Kotlin中,对象声明分为可引用和引用两种。...设计Kotlin Native目的是为了支持在JVM环境下进行编程,如在嵌入式平台和iOS环境下,如此一来,Kotlin就可以运行在JVM平台环境下。...标准高阶函数 11.3 内联函数 11.3.1 内联Lambda表达式 11.3.2内联函数声明 11.3.3局部返回 11.3.4实例化类型参数 11.3.5内联属性 11.4 Lambda表达式与匿名函数

3.2K10

Android Jetpack系列 之分页库Paging3(一)

mpp-dev-11' 如果你还不了解协程和Flow可以先移步至前两篇文章 Kotlin 协程 看这一篇就够了 Kotlin Flow 看这一篇 带你入门~ 项目示例 在官方文档中也给出了我们Paging...这里需要提醒是如果你使用不是Kotlin 协程而是Java,则需要继承对应PagingSource如RxPagingSource或ListenableFuturePagingSource。...必须是非类型,所以我们需要判断返回是否null。...,当网络不好时候,可以考到页面的框架,从而提升用户体验 还有一些其他参数这里就不一一介绍了,从构造方法源码中可以看出pageSize这个参数是必填,其他是可选项,所以我们这里传了1 定义RecycleViewAdapter...DiffUtil这个参数,用于计算列表中两个项目之间差异回调。

4K30

Android实现优雅快速网络请求!

目标 简单调用、少写重复代码 不依赖第三方库(只含Retrofit+Okhttp+协程) 完全不懂协程也能立马上手(模板代码) 用Kotlin方式写Kotlin代码,什么意思呢?...Log.i("wutao", "返回数据是,展示布局") } onFailed { Log.i("wutao", "后台返回errorCode: $it")...obserState()方法第二个参数中传入了UI引用。 不能达到"看方法如其意",如果是刚接触,会有很多疑问:为什么需要一个livedata作为方法参数。网络请求返回值去哪了?...) ApiFailedResponse(data.errorCode, data.errorMsg) } } /** * 成功和数据处理...} } } Retrofit协程错误码处理是通过异常抛出来,所以通过try...catch来捕捉200错误码。包装成不同数据类对象返回。

89220

Kotlin 泛型:类型参数约束

上一篇文章讲了 Kotlin 泛型:基本使用,接下来我们再进一步了解泛型使用相关进阶知识。本篇是 Kotlin 泛型类型参数约束讲解,更多内容可点击链接查看。...我想 QA 同学在回归其他打印机设备时候,心里想得肯定是给编写代码你寄刀片吧?利用范型约束实现范型Kotlin 有一个为人称道特性:不可。但当我们使用范型时,这个特性在不幸失效了。...中泛型属性也同样变得可,这使得泛型类在具体实现时候,需要考虑参数情况,也让编写代码具体实现变得复杂。...理解了它们区别,就能明白为什么同样是基于 JVM 字节码,Kotlin 能在 Java 基础之上实现更严格/特性,而 Groovy 却反其道做成了一门动态类型语言。...当我们定义一个范型类/范型函数时,由于「类型参数」在被「类型实参」替换时可使用「可类型」和「类型」这两种类型,这会迫使我们在做具体实现要考虑可类型,带来了不必要复杂性。

2.1K31

kotlin到底好在哪里?

,因为我们已经将哪个实参传给哪个形参都标明了. 3、指针安全 在kotlin中,每个类型都有其对应类型,只有可类型才能被赋值null: var a: Int = 1 var b: Int?...= 2.0f a = null b = null c = null d = null e = null f = null 类型不可能为null,所以不用考虑指针问题.只有可类型有可能为null...get(0); } 但是在我看来,可类型类型意义并不在帮我们做简化了判空处理代码.更重要一点是明确指出了哪些变量是可能为,同时明确了时候调用应该怎么处理....对于类型,它永远不可能为,我们不需要考虑它指针问题.而对于可类型,我们需要明确指定在它为时候调用抛出异常亦或进行执行.这样其实缩小了指针异常范围,同时也减小了指针对程序稳定安全破坏性...》、《再谈Java泛型》 7、无缝调用java 当然,一个语言就算做再好,但是没有一个健全生态的话是很难被大众接受.kotlin能够火起来,甚至被谷歌爸爸钦定为安卓官方推荐语言.一个很重要原因就是它可以无缝与

96770

Kotlin 协程】协程底层实现 ① ( Kotlin 协程分层架构 | 基础设施层 | 业务框架层 | 使用 Kotlin 协程基础设施层标准库 Api 实现协程 )

, 协程分为两层 ; 基础设施层 : Kotlin 提供了 协程 标准库 Api , 协程提供 概念 , 语义 支持 , 是 协程 实现基础 ; Kotlin 协程底层支持 ; 基础 Api ;...和 Java 基础 Api , 业务框架层 是 对 基础 Api 进行了一层封装框架 , 如 RxJava , Retrofit , Glide 等 , 目的是为了方便开发 ; 二、使用 Kotlin...函数 , 传入 Continuation 实例对象 , 一般传入一个 对象表达式 ( Java 中匿名内部类 ) 作为参数 ; 对象表达式 object : Continuation 中...类型 // 协程上下文设置 协程上下文 EmptyCoroutineContext override val context: CoroutineContext = EmptyCoroutineContext...Int 泛型表示 协程体返回值 Int 类型 // 协程上下文设置 协程上下文 EmptyCoroutineContext override val

77310

Retrofit解析2之使用简介

()转换为String 并进行URL编码,使用该注解定义参数参数值可以为时,忽略该值,当传入一个List或array时,每个item拼接请求键值对,所有的键是统一,如:name=张三...用String.valueOf()把参数值转换为String,然后践行URL编码,当参数null是=时,会自动忽略,如果传入是一个List或者array,则为每一个item拼接一个键值对,...,用于定义Multipart请求每和part 使用该注解定义参数参数值可以为时,则忽略。...2、@Header:作用于方法参数,用于添加请求头 使用 @Header 注解 定义请求头可以为,当时,会自动忽略,当传入一个List或者array时,拼接每个item值到请求头中。...同理,Retrofit会判断@Part参数类型,如果参数okhttp3.MultipartBody.Part,则Retrofit会把RequestBody封装成MultipartBody,再把Part

4.7K30

重温Retrofit源码,笑看协程实现

通过parseParameter来解析出请求参数信息,例如Path、Url与Query等等;同时也对它们合规使用做了验证,例如QueryMap与FieldMap等注解它们key都必须String...这些注解解析都是在parseParameterAnnotation()方法中进行。 上面的p == lastParameter需要特别注意下,为何要专门判断该参数是否最后一个呢?请继续向下看。...所以判断是否是使用了协程有三步: result,即该参数没有注解 allowContinuationtrue,即是最后一个参数 Continuation.class,说明该参数类型Continuation...因为在代码编译过程中会自动带有suspend函数添加一个Continuation类型参数,并将其添加到最后面。...熟悉一幕,又用到了最后一个参数。这里isNullable目前Retrofit版本都是false,可能后续会支持类型。

49530

Kotlin与Java互操作

和setter方法(名称以get开头参数方法和以set开头参数方法)在Kotlin中表示属性。...=item//允许,没有问题 Val notNull:String=item//允许,运行时可能失败 如果选择类型,编译器会在赋值时触发一个断言,这样可以防止Kotlin变量保存值。...当把平台值传递给期待值等Kotlin函数时,也会触发一个断言。总的来说,编译器尽力阻止传播(由于泛型原因,有时这不可能完全消除)。...如果 @Nonnull(when = …) 值 When.ALWAYS,那么该注解类型会被视为;When.MAYBE 与 When.NEVER 表示可类型;而 When.UNKNOWN 强制类型平台类型...Kotlin在JVM虚拟机中运行时会检查所有的公共函数,可以检查值,这时候就可以通过NullPointerException得到Java中值代码。

3.4K30

From Java To Kotlin 2:Kotlin 类型系统与泛型终于懂了

Kotlin中,每个变量或表达式都有一个确定类型,例如Int、String、Boolean等,类型可以是可,例如 `String?` 或 `String`。...--- ## 类型系统 Kotlin 类型还分为**可类型**和**不可类型**。Any 是所有类型根类型;而 Any? 是所有可类型根类型。...Kotlin平台类型**本质**上就是Kotlin不知道**可空性信息**类型,即可以当作可类型,也可以当作类型。...Kotlin 编译器不会检查它们是否 null,所以需要程序员**自己负责**。如果要避免指针异常,可以使用安全调用运算符(?.)或断言运算符(!!)来处理平台类型。...length) // 断言,如果 name null 则抛出异常 ``` 平台类型是 Kotlin 和 Java 互操作性问题, 在混合项目中要多加注意。

41850
领券