小编acr*_*ing的帖子

如何检查 net.Conn 是否关闭?

或者如何检查它是否可用于ReadWrite在循环中?如果 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)

tcp go

6
推荐指数
1
解决办法
8599
查看次数

如何用javascript优化整数toString方法?

我想使用Number.toString(62),但 ECMAScript 不支持它(仅支持从 2 到 36 的基数),所以我正在编写自己的Number.toString.

\n\n

而我只需要用它来格式化int64,不需要关心double

\n\n

因此,我NumberBigInt不同radix.

\n\n

基准代码如下:

\n\n
import { 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)

javascript node.js

5
推荐指数
0
解决办法
289
查看次数

如何通过javascript检测浏览器环境中浏览器是否支持http2?

我想combo通过环境是否支持http2来确定是否使用。但是,我找不到检查浏览器是否支持 http2 的方法。

先感谢您。

javascript browser http2

3
推荐指数
1
解决办法
4210
查看次数

如何扁平化打字稿中的泛型类型声明?

案件:

函数输入一个嵌套的通用对象,并输出平面对象,如下所示:

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)

generics typescript

1
推荐指数
1
解决办法
3095
查看次数

如何在 golang 中创建具有动态长度而不是切片的数组?

例如:我想使用反射将切片的数据作为数组来操作它。

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)它不是常量。我该如何解决?

arrays go slice

-1
推荐指数
1
解决办法
1893
查看次数

标签 统计

go ×2

javascript ×2

arrays ×1

browser ×1

generics ×1

http2 ×1

node.js ×1

slice ×1

tcp ×1

typescript ×1