0%

在Elixir中我们提供了两种关联数据结构:关键字列表和映射。和其他语言中的字典,哈希,关联数组等类似。

关键字列表(Keyword Lists)

在Elixir中,当我们有一个元祖列表,并且元祖的第一个元素是原子的时候,我们称它为关键字列表。

1
2
3
4
iex> list = [{:a, 1}, {:b, 2}]
[a: 1, b: 2]
iex> list == [a: 1, b: 2]
true
阅读全文 »

上一篇文章中,已经介绍过了+-*/四种算术运算符,以及div/2rem/2两个计算整除和取余的方法。在这篇文章中为大家介绍一些其他操作方法。

++和–

Elixir中提供了++--操作符来操控列表

1
2
3
4
iex> [1, 2, 3] ++ [4, 5, 6]
[1, 2, 3, 4, 5, 6]
iex> [1, 2, 3] -- [2]
[1, 3]
阅读全文 »

在这篇文章中将会提到Elixir中最常见的功能也是最核心的功能——模式匹配。让我们一起来看看吧。

匹配操作符

在之前的介绍中我们已经见到过了=操作符的用法

1
2
3
4
iex> x = 1
1
iex> x
1
阅读全文 »

这篇文章中我们主要了解Elixir中的基本数据类型:整数(integers),浮点数(floats),布尔值(booleans),原子(atoms),字符串(strings),列表(lists)和元组(tuples)

1
2
3
4
5
6
7
8
iex> 1          # 整数
iex> 0x1F # 整数
iex> 1.0 # 点数
iex> true # 布尔值
iex> :atom # 原子 / 符号
iex> "elixir" # 字符
iex> [1, 2, 3] # 列表
iex> {1, 2, 3} # 元组
阅读全文 »

什么是Defx

Defx是一款全新的在neovim下的文件树插件。它具有以下特点

  • 不依赖于 denite.nvim
  • 兼容vim8和neovim(vim8下需要安装nvim-yarp)
  • 使用Python3实现
  • 类似于denite.nvim一样支持 source

还有一些其他的特点就不一一介绍了,大家可以点击项目主页前往查看。

那么,对比经典的老牌插件NerdTree有什么优点呢,最大的优点是异步功能,这样就比NerdTree的加载速度要快很多。除此之外,还可以像VSCode和PHPStorm等现代化的IDE一样为每个文件加上图标。

阅读全文 »

这篇文章主要分享一下我是怎么学习一种新的语言或者框架的。

0X01 查看官方文档指引

一般来说,比较好的文档都会自带一个小项目的教程,通过这个小教程你能够了解这个框架能够做什么,以及怎样实现对应的功能。在这一方面,国外的很多框架文档中都会有包含,比如:ReactJS提供了一个井字棋小项目。Rails提供了一个博客项目。Laravel的最新版本虽然没有提供任何教程,但是Laracasts会提供免费的系列教程Laravel X
From Scratch
,当然在Laravel5.1的文档中还是提供了一个TODO 列表。相较之下,国内的一些开源框架这种官方的小项目很少有了。

那么写完这个小项目之后,你会对这个框架的文件结构以及基本的写法有个大概的了解。

0x02 略读文档

阅读全文 »

ActionCable是在rails中提供实时沟通的一个功能,与Laravel中的Broadcast功能类似。Devise则是一个非常著名的用于登录认证等内容的Gem。由于在ActionCable处理的过程中无法读取session的内容,但是能读取cookie的内容。所以本文介绍一下如何在ActionCable中处理devise的认证。

阅读全文 »

这篇文章将告诉大家怎样快速的在Rails6中安装使用tailwindCSS。那么让我们开始吧!

安装tailwindCSS

输入下面的命令进行安装

1
2
3
4
5
# 通过 npm
npm install tailwindcss

# 通过 Yarn
yarn add tailwindcss
阅读全文 »

在我们日常写Laravel程序的过程中,不可避免的要使用到cache 那么你知道cache有几种写法么?

基本用法

方法一

我们可以使用Facades来处理,具体如下:

1
2
3
use Illuminate\Support\Facades\Cache;

Cache::get('xxx');
阅读全文 »