Richard's Blog

Richard's Blog

My Learning Journal

Rust中的变量生存期——lifetime

在之前的文章中,关于引用与借取的内容有一点没有详细说明,就是在Rust中的所有引用都有生存期(lifetime),它是用于表达引用的作用范围。

大多数情况下,生存期都是隐式推断的,但是如果有多种可能导致无法推断,就必须使用泛型生存期参数进行声明。

生存期这个概念大概是Rust语言中最具特色的特点,这篇文章只简要解释常见的生存期语法。

使用生存期来预防悬空引用

生存期的主要目的是确保在程序中引用到预期的数据,防止悬空引用。

1
2
3
4
5
6
7
8
9
10
{
let r;

{
let x = 5;
r = &x;
}

println!("r: {}", r);
}
Rust中的所有权规则(Ownership)

一直听说Rust性能牛逼,无GC但可以自动内存管理。一直听说Rust有特殊的内存管理规则,而且是一款系统语言,一直想学一款低级语言,所以就选了Rust。

看到Rust的Ownership相关内容,都说这部分不容易搞懂,记录一下。

在vue组件中实现属性透传

在 React 中属性透传是一件很随意的事,只要在某个子组件上写上{...this.props}就能简单的实现属性透传,这对封装第三方组件非常友好。

在 Angular 中没有尝试过,但是想了一下似乎可以通过ViewChild和继承被扩展类来实现属性透传。

最近在 Vue 项目中遇到了一个类似的需求,但是百度了一会似乎没什么文章说这个问题,虽然有关 vue 的 HOC 相关文章不少,但是我遇到的需求和 HOC 还有点不太一样。

需求是使用 iView 组件库,其中当使用Upload组件时必须在请求的 body 中传递固定的参数

Golang中的单例模式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package main

import (
"fmt"
"sync"
)

type singleton map[string]string

var (
once sync.Once

instance singleton
)

func New() singleton {
once.Do(func() {
instance = make(singleton)
})

return instance
}
用Golang做一个命令行翻译工具

目标

用golang写一个命令行的翻译工具,在命令行输入以下命令:

1
$ fanyi hello

输出以下结果:

1
2
3
4
5
6
7
8
9
10
hello [həˈləʊ]

- 你好

1. Hello Android
创建,创立,建立
2. Hello Neighbor
你好邻居,你好
3. Hello English
新纪元小学英语,学英语,律动欢唱学英语
Golang学习笔记——定义函数类型实现接口
今天在看golang的教程中解释当我们使用golang创建http服务时的内部原理。 golang创建http服务代码如下 123456789101112131415161718192021222324252627package mainimport ( "fmt" "net/http")func sayHelloName(w http.ResponseWriter, r *http.Request) { r.ParseForm() fmt.Println(r.Form) fmt.Println("Path: ", r.URL.Path) fmt.Println("Scheme...
理解Angular中的Resolver

今天在修改以前同事留下的项目代码时,发现可能以前同事手快通过vscode的autocomplete导入了一些angular内置的类,但是从来没使用过的。平时就觉得Angular的技术栈太深了,官方示例和帮助文档只展示了很少的一部分功能,有些Angular的机制很难被发现。今天就在代码中发现了不小心被导入的resolveDefinition方法,稍微搜索了一下发现了Angular有一个叫Resolver的机制,这个机制在Angular4.x中就已经存在。下面是找到的一篇文章,翻译一下放在这里。

无限动态列表

本文来自于我自己学习Flutter时所学习的教程的中文翻译,原文链接INFINITE DYNAMIC LISTVIEW

英语水平有限,内容未必准确

在这篇文章中,我将快速介绍如何做一个无限的列表(ListView),当用户滑动到最底端时可以动态的加载更多数据。最终结果就像下面这样:

infinite_dynamic_list_view_1

让我们开始吧!

动态浮动按钮
本文来自于我自己学习Flutter时所学习的教程的中文翻译,原文链接DYNAMIC SLIVER FLOATINGACTIONBUTTON 英语水平有限,内容未必准确 在这篇文章中我将一步步创建一个固定在FlexibleSpaceBar(下面那样)边缘的FloatingActionButton。让我们开始吧。 长求总:我(作者)发布在pub package,这样你也可以实现类似的FAB行为。请随意使用和扩展。🙂 问题想实现上面那样固定FloatingActionButton的主要问题是在CustomScrollView或SliverList中没有地方把一个Widget放置...
在Flutter Firebase应用中使用Redux——体重跟踪4
本文来自于我自己学习Flutter时所学习的教程的中文翻译,原文链接REDUXING FLUTTER FIREBASE APP – WEIGHTTRACKER 4 这篇文章中所使用的Firebase_auth任何版本在我的机器上都无法编译通过,考虑到上一篇对环境的要求非常严苛,以及此篇我无法正常运行应用,所以这个体重跟踪应用的系列暂时不再继续翻译 英语水平有限,内容未必准确 在这篇文章中我将展示怎样把flutter_redux库添加到我现有的与Firebase有连接的应用中。这里展示的开发内容是我的体重追踪应用(追踪体重的简单应用)的一部分,并且只有这些内容。 提示: 以下...
avatar
Richard
stay hungry, stay foolish