或者如何检查它是否可用于Read
或Write
在循环中?如果 conn 已关闭或不可用,我们应该停止循环。
例如:
package main
import "net"
func main() {
conn, err := net.Dial("tcp", "127.0.0.1:1111")
defer conn.Close()
for {
buf := make([]byte, 1, 1)
n, err := conn.Read(buf)
if err != nil {
// currently we can only stop the loop
// when occur any errors
log.Fatal(err)
}
}
}
Run Code Online (Sandbox Code Playgroud) 我想使用Number.toString(62)
,但 ECMAScript 不支持它(仅支持从 2 到 36 的基数),所以我正在编写自己的Number.toString
.
而我只需要用它来格式化int64
,不需要关心double
。
因此,我Number
对BigInt
不同radix
.
基准代码如下:
\n\nimport { Suite } from \'benchmark\';\nimport { shuffle } from \'lodash\';\n\nconst float = new Array(10000)\n .fill(0)\n .map(() => Math.random() * Number.MAX_SAFE_INTEGER);\nconst int = float.map(Math.floor);\nconst big = int.map(BigInt);\n\nexport const suite = new Suite(\'native integer format\')\n .add(\'Int64.toString(10)\', () => shuffle(int).map((n) => n.toString(10)))\n .add(\'Int64.toString(16)\', () => shuffle(int).map((n) => n.toString(16)))\n .add(\'Int64.toString(36)\', () => shuffle(int).map((n) => n.toString(36)))\n …
Run Code Online (Sandbox Code Playgroud) 我想combo
通过环境是否支持http2来确定是否使用。但是,我找不到检查浏览器是否支持 http2 的方法。
先感谢您。
案件:
函数输入一个嵌套的通用对象,并输出平面对象,如下所示:
interface Deep<T> {
p1: T;
p2: T;
}
type Nested<T> = {
[P in keyof T]: Deep<any>;
}
type Flat<T, ?> = {
[P in keyof T]: T[P]?;
}
function flat<T extends Nested<T>>(input: T, p: keyof Deep<any>): Flat<T, ?> {
const put: any = {}
for (let k in input)
put[k] = input[k][p]
}
const foo = flat({
name: { p1: 'name', p2: 'name' },
{ fn: { p1: () => 0, p2: () => 1 }
}) …
Run Code Online (Sandbox Code Playgroud) 例如:我想使用反射将切片的数据作为数组来操作它。
func inject(data []int) {
sh := (*reflect.SliceHeader)(unsafe.Pointer(&data))
dh := (*[len(data)]int)(unsafe.Pointer(sh.Data))
printf("%v\n", dh)
}
Run Code Online (Sandbox Code Playgroud)
此函数将发出编译错误,因为len(data)
它不是常量。我该如何解决?
go ×2
javascript ×2
arrays ×1
browser ×1
generics ×1
http2 ×1
node.js ×1
slice ×1
tcp ×1
typescript ×1