现代CSS 100天:第 3 天:逻辑属性速记

现在是时候让我快速了解现代CSS了。
CSS中有很多新的东西,我对它知之甚少。
为了改变这一点,我开始#现代CSS100天。
为什么或多或少是现代的CSS?
因为有些主题将是关于尖端功能的,而其他东西已经存在了很长一段时间,但我几乎没有这方面的经验。

如果您使用速记属性(如所有 4 个值),则无论读取方向如何,这些属性将始终沿顶部 – 右侧 – 底部 – 左侧方向应用。margin

这可能是需要的,但也可能发生您想要尊重阅读方向的情况。逻辑属性引入了 2 个新的速记属性,以及 。这些属性采用 1 个或 2 个值。m[……]

继续阅读

现代CSS 100天:第 2 天:逻辑属性

现在是时候让我快速了解现代CSS了。
CSS中有很多新的东西,我对它知之甚少。
为了改变这一点,我开始#现代CSS100天。
为什么或多或少是现代的CSS?
因为有些主题将是关于尖端功能的,而其他东西已经存在了很长一段时间,但我几乎没有这方面的经验。

逻辑属性是一种处理方向和维度的新方法,它允许您通过逻辑映射(而不是物理映射)来控制布局。如果您正在处理以不同语言和写作模式(如从右到左)呈现的网站,这尤其有用。

物理性质

我们习惯于使用物理属性,如 、 或 。margin-righttopborder-left

在从右向左的语言中,“One”应该位于最右边,但这并不是[……]

继续阅读

现代CSS 100天:第 1 天:自定义属性和回退

现在是时候让我快速了解现代CSS了。
CSS中有很多新的东西,我对它知之甚少。
为了改变这一点,我开始#现代CSS100天。
为什么或多或少是现代的CSS?
因为有些主题将是关于尖端功能的,而其他东西已经存在了很长一段时间,但我几乎没有这方面的经验。

您可以将第二个值传递给 CSS 函数,该函数在尚未设置属性时充当回退。var()

回退Fallbacks

回退也可以是自定义属性(具有自己的回退)。

当回退失败时

如果不使用自定义属性,并且为属性设置了一个有效值,后跟另一个具有无效值的声明,则第二个声明将被忽略。

当第二个声明中的值是不存在的自定义属性[……]

继续阅读

100 天或多或少的现代 CSS

现在是时候让我快速了解现代CSS了。
CSS中有很多新的东西,我对它知之甚少。
为了改变这一点,我开始#《现代CSS100天》
为什么或多或少是现代的CSS?
因为有些主题将是关于尖端功能的,而其他东西已经存在了很长一段时间,但我几乎没有这方面的经验。

  • 第 1 天:自定义属性和回退
  • 第 2 天:逻辑属性
  • 第 3 天:逻辑属性速记
  • 第 4 天:min() 函数
  • 第 5 天:max() 函数
  • 第 6 天::has() 伪类
  • 第7天:子网格
  • 第8天:nesting:has()
  • 第9天:插图速记属性
  • 第 10 天:全局样式和 Web 组件
  • 第11天:空格分隔的功能性颜色符号
  • 第12天:max()诡计
  • 第 13 天::where[……]

    继续阅读

什么是Kotlin中的Reified类型?

reified关键字是用于Kotlin内联函数的,修饰内联函数的泛型,泛型被修饰后,在方法体里,能从泛型拿到泛型的Class对象,这与java是不同的,java需要泛型且需要泛型的Class类型时,是要把Class传过来的,但是kotlin不用了

您必须同意Kotlin是一种很棒的语言,这是因为与其他编程语言相比,它具有独特的功能。这些功能之一是Kotlin中的“Reified”关键字。等等,这个奇怪的术语叫“具体化”是什么?别担心,这就是今天博客的主题。在这篇博客中,我们将了解 Reified 类型。那么,让我们开始吧。

开始之前

大多数编程语言都有泛型的概念。泛型用于提供[……]

继续阅读

Kotlin DSL – 类型安全构建器

(D)omain (S)pecific (L)anguage语言是一种用于描述特定域中事物的格式。一个非常基本的例子是购物清单:包含项目和可选项目计数的列表。对购物非常有用。但在这种情况下,DSL的目标是帮助开发人员。众所周知的例子是HTML和CSS,用于描述网页和样式的格式。对于我们人类来说,阅读和编写HTML和CSS比通过常规编程获得相同的结果更容易。但是您确实需要一个专用的DSL解析器。如果有一点编辑器支持,可以在您在DSL中编写时为您提供帮助,那就太好了。

在 Kotlin 中,您可以使用类型安全生成器来实现此目的。它们用于诸如格拉德DSL和设置Ktor服务器之类的事情。但是开发[……]

继续阅读

Kotlin 中的等号(’==’、’===’ 和 ‘equals’)

我们经常需要在 Kotlin 中比较两个变量或对象的数据或者两个对象的引用。这带来了另一个问题,在这种情况下我们应该使用哪种相等检查。让我们弄清楚 Kotlin 中可用的检查类型有哪些。

结构相等(’==’)。

==运算符用于比较两个变量的数据。
在Kotlin中,==操作符只用于比较数据或变量,而在Java或其他语言中,==一般用于比较引用。
在Kotlin中,与==相对应的负数是!=,用于比较两个值是否相互不相等。

引用相等(’===’)

=== 操作符用于比较两个变量或对象的引用。
只有当两个对象或变量都指向同一个对象时,它才是真的。
在Kotlin中,===的否定对应项[……]

继续阅读

开始使用 Kotlin/JVM

本教程演示了如何使用 IntelliJ IDEA 创建控制台应用程序。

要开始使用,首先下载并安装最新版本的IntelliJ IDEA。

创建项目

1.在 IntelliJ IDEA 中,选择文件| 新建| 项目。

2.在左侧面板中,选择New Project。

3.命名新项目并在必要时更改其位置。选中创建 Git 存储库复选框以将新项目置于版本控制之下。您以后可以随时进行操作。

4.从语言列表中,选择Kotlin。

5.选择IntelliJ构建系统。它是一个不需要下载额外工件的原生构建器。如果要创建需要进一步配置的更复杂的项目,请选择 Mave[……]

继续阅读

Kotlin协程的第一步

异步编程正在获得动力,因为它允许更有效地利用处理器时间。因此,应用程序可以在每单位时间内处理更多请求,并且可以更好地扩展。

目前,实现异步方法有几个选项:

  • 回调
  • 反应式编程
  • 协程
  • 协程

    协程允许您将应用程序代码保持其通常形式,执行在后台任务之间切换的所有操作。

    在示例中,我们用 suspend 关键字标记 doSomething 函数,这意味着它的答案不会立即出现。该函数本身还一个接一个地执行一些异步请求。

    从常规函数调用挂起函数

    不能从常规函数调用挂起函数,因为 JVM 不清楚应在哪个线程上执行该函数。

    如果我们想在同一线程[……]

    继续阅读

    取消Kotlin的协程

    概述

    有时我们需要关闭一些线程,我们不能只是杀死线程,因为我们需要释放资源并关闭连接。

    协程提供了一个简单的撤消机制来解决此类问题以及长时间运行的操作或内存泄漏的问题。

    取消Jobs

    让我们使用工厂函数创建一个对象:Job()

    此 Job 对象表示正在运行的协程。我们不需要其结果的协程可以通过调用该函数随时取消:job.cancel()

    协程将被取消,而无需等待其实际完成。再次调用取消不会执行任何操作。

    取消协程是完全线程安全且非阻塞的。

    如果我们需要等待 Job 完成,我们可以使用:job.join()

    我们也可以将这两个调用[……]

    继续阅读