Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
1ae2f5ba
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1187
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
1ae2f5ba
编写于
4月 12, 2022
作者:
D
dingbo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: refine connect page
上级
f44afe14
变更
25
隐藏空白更改
内联
并排
Showing
25 changed file
with
237 addition
and
159 deletion
+237
-159
docs-cn/04-connect/_connect_cs_native.mdx
docs-cn/04-connect/_connect_cs_native.mdx
+4
-20
docs-cn/04-connect/_connect_go.mdx
docs-cn/04-connect/_connect_go.mdx
+12
-8
docs-cn/04-connect/_connect_go_native.mdx
docs-cn/04-connect/_connect_go_native.mdx
+0
-22
docs-cn/04-connect/_connect_java.mdx
docs-cn/04-connect/_connect_java.mdx
+7
-9
docs-cn/04-connect/_connect_java_native.mdx
docs-cn/04-connect/_connect_java_native.mdx
+0
-11
docs-cn/04-connect/_connect_node.mdx
docs-cn/04-connect/_connect_node.mdx
+6
-0
docs-cn/04-connect/_connect_node_native.mdx
docs-cn/04-connect/_connect_node_native.mdx
+0
-14
docs-cn/04-connect/_connect_python_native.mdx
docs-cn/04-connect/_connect_python_native.mdx
+5
-6
docs-cn/04-connect/_connect_r.mdx
docs-cn/04-connect/_connect_r.mdx
+13
-0
docs-cn/04-connect/_connect_rust.mdx
docs-cn/04-connect/_connect_rust.mdx
+5
-6
docs-cn/04-connect/_connect_rust_native.mdx
docs-cn/04-connect/_connect_rust_native.mdx
+0
-8
docs-cn/04-connect/index.mdx
docs-cn/04-connect/index.mdx
+129
-38
docs-cn/14-reference/03-connector/java.mdx
docs-cn/14-reference/03-connector/java.mdx
+2
-1
docs-examples/java/pom.xml
docs-examples/java/pom.xml
+1
-1
docs-examples/java/src/main/java/com/taos/example/RESTConnectExample.java
...va/src/main/java/com/taos/example/RESTConnectExample.java
+3
-7
docs-examples/java/src/main/java/com/taos/example/RestQueryExample.java
...java/src/main/java/com/taos/example/RestQueryExample.java
+1
-1
docs-examples/java/src/main/java/com/taos/example/WSConnectExample.java
...java/src/main/java/com/taos/example/WSConnectExample.java
+21
-0
docs-examples/node/nativeexample/connect.js
docs-examples/node/nativeexample/connect.js
+1
-1
docs-examples/node/nativeexample/insert_example.js
docs-examples/node/nativeexample/insert_example.js
+1
-1
docs-examples/node/nativeexample/query_example.js
docs-examples/node/nativeexample/query_example.js
+1
-1
docs-examples/node/package.json
docs-examples/node/package.json
+2
-1
docs-examples/node/restexample/connect.js
docs-examples/node/restexample/connect.js
+20
-0
docs-examples/python/async_query_example.py
docs-examples/python/async_query_example.py
+1
-1
docs-examples/rust/restexample/examples/insert_example.rs
docs-examples/rust/restexample/examples/insert_example.rs
+1
-1
docs-examples/rust/restexample/examples/query_example.rs
docs-examples/rust/restexample/examples/query_example.rs
+1
-1
未找到文件。
docs-cn/04-connect/_connect_cs_native.mdx
浏览文件 @
1ae2f5ba
首先添加 [TDengine.Connector](https://www.nuget.org/packages/TDengine.Connector/) 的引用:
```xml title=csharp.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<StartupObject>TDengineExample.ConnectExample</StartupObject>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="TDengine.Connector" Version="1.0.6" />
</ItemGroup>
</Project>
```
```csharp
{{#include docs-examples/csharp/ConnectExample.cs}}
```
:::info
C# 连接器目前只支持本地连接。
:::
\ No newline at end of file
docs-cn/04-connect/_connect_go.mdx
浏览文件 @
1ae2f5ba
```go-mod title=go.mod
module goexample
go 1.17
require github.com/taosdata/driver-go/v2 develop
#### 使用数据库访问统一接口
```go title="本地连接"
{{#include docs-examples/go/connect/cgoexample/main.go}}
```
```go
```go title="RESTful 连接"
{{#include docs-examples/go/connect/restexample/main.go}}
```
#### 使用高级封装
也可以使用 driver-go 的 af 包建立连接。这个模块封装了 TDengine 的高级功能, 如:动态绑定、订阅等。
```go title="使用 af 包建立本地连接"
{{#include docs-examples/go/connect/afconn/main.go}}
```
docs-cn/04-connect/_connect_go_native.mdx
已删除
100644 → 0
浏览文件 @
f44afe14
:::note
driver-go 使用 cgo 封装了 taosc 的 API。cgo 需要使用 gcc 编译 C 的源码。因此需要确保你的系统上有 gcc。
:::
```go-mod title=go.mod
module goexample
go 1.17
require github.com/taosdata/driver-go/v2 develop
```
```go title="使用 database/sql 包建立连接"
{{#include docs-examples/go/connect/cgoexample/main.go}}
```
也可以使用 driver-go 的 af 包建立连接。这个模块封装了 TDengine 的高级功能, 如:动态绑定、订阅等。
```go title="使用 af 包建立连接"
{{#include docs-examples/go/connect/afconn/main.go}}
```
docs-cn/04-connect/_connect_java.mdx
浏览文件 @
1ae2f5ba
```xml title=pom.xml
<dependency>
<groupId>com.taosdata.jdbc</groupId>
<artifactId>taos-jdbcdriver</artifactId>
<version>2.0.37</version>
</dependency>
```java title="本地连接"
{{#include docs-examples/java/src/main/java/com/taos/example/JNIConnectExample.java}}
```
```java
{{#include docs-examples/java/src/main/java/com/taos/example/RESTConnectExample.java}}
```java title="RESTful 连接"
{{#include docs-examples/java/src/main/java/com/taos/example/RESTConnectExample.java:main}}
```
```java title="WebSocket 连接" {4}
{{#include docs-examples/java/src/main/java/com/taos/example/WSConnectExample.java:main}}
```
\ No newline at end of file
docs-cn/04-connect/_connect_java_native.mdx
已删除
100644 → 0
浏览文件 @
f44afe14
```xml title=pom.xml
<dependency>
<groupId>com.taosdata.jdbc</groupId>
<artifactId>taos-jdbcdriver</artifactId>
<version>2.0.37</version>
</dependency>
```
```java
{{#include docs-examples/java/src/main/java/com/taos/example/JNIConnectExample.java}}
```
docs-cn/04-connect/_connect_node.mdx
浏览文件 @
1ae2f5ba
```js title="本地连接"
{{#include docs-examples/node/nativeexample/connect.js}}
```
```js title="RESTful 连接"
{{#include docs-examples/node/restexample/connect.js}}
```
\ No newline at end of file
docs-cn/04-connect/_connect_node_native.mdx
已删除
100644 → 0
浏览文件 @
f44afe14
首先需要安装 node.js 的连接器 `td2.0-connector`:
```bash
npm install td2.0-connector
```
:::note
推荐Node版本大于等于 `node-v12.8.0` 小于 `node-v13.0.0`
:::
```js
{{#include docs-examples/node/nativeexample/connect.js}}
```
docs-cn/04-connect/_connect_python_native.mdx
浏览文件 @
1ae2f5ba
推荐使用 `python >= 3.4`。首先需要安装 python 连接器 `taospy`。执行以下命令即可:
```
pip3 install taospy
```
```python
{{#include docs-examples/python/connect_exmaple.py}}
```
:::info
Python 连接器目前只支持本地连接。
:::
docs-cn/04-connect/_connect_r.mdx
0 → 100644
浏览文件 @
1ae2f5ba
```R
> library("DBI")
> library("rJava")
> library("RJDBC")
> driver_path = "C:/TDengine/connector/jdbc/taos-jdbcdriver-2.0.37-dist.jar"
> driver = JDBC("com.taosdata.jdbc.TSDBDriver", driver_path)
> conn = dbConnect(driver, "jdbc:TAOS://127.0.0.1:6030/?user=root&password=taosdata")
> dbGetQuery(conn, "SELECT server_version()")
server_version()
1 2.4.0.12
> dbDisconnect(conn)
[1] TRUE
```
\ No newline at end of file
docs-cn/04-connect/_connect_rust.mdx
浏览文件 @
1ae2f5ba
```toml title=Cargo.toml
[dependencies]
libtaos = { version = "*", features = ["rest"] }
```
```rust
{{#include docs-examples/rust/
rest
example/examples/connect.rs}}
{{#include docs-examples/rust/
native
example/examples/connect.rs}}
```
:::note
对于 Rust 连接器, 连接方式的不同只体现在使用的特性不同。如果启用了 "rest" 特性,那么只有 RESTful 的实现会被编译进来。
:::
docs-cn/04-connect/_connect_rust_native.mdx
已删除
100644 → 0
浏览文件 @
f44afe14
```toml title=Cargo.toml
[dependencies]
libtaos = { version = "0.4.2"}
```
```rust
{{#include docs-examples/rust/nativeexample/examples/connect.rs}}
```
docs-cn/04-connect/index.mdx
浏览文件 @
1ae2f5ba
...
...
@@ -9,80 +9,171 @@ import ConnJava from "./_connect_java.mdx";
import ConnGo from "./_connect_go.mdx";
import ConnRust from "./_connect_rust.mdx";
import ConnNode from "./_connect_node.mdx";
import ConnJavaNative from "./_connect_java_native.mdx";
import ConnPythonNative from "./_connect_python_native.mdx";
import ConnGoNative from "./_connect_go_native.mdx";
import ConnRustNative from "./_connect_rust_native.mdx";
import ConnNodeNative from "./_connect_node_native.mdx";
import ConnCSNative from "./_connect_cs_native.mdx";
import ConnC from "./_connect_c.mdx";
import ConnR from "./_connect_r.mdx";
## 连接器介绍
TDengine 提高了多种编程语言的连接器方便用户开发应用程序。本节介绍如何使用连接器建立与 TDengine 的连接。
TDengine 提供了丰富的应用程序开发接口,其中包括 C/C++、Java、Python、Go、Node.js、C# 、RESTful 等,便于用户快速开发应用。
## 连接器建立连接的方式

连接器建立连接的方式,从本质上分为三种:
1. 通过 taosAdapter 组件提供的 RESTful API 建立连接。
2. 通过 taosAdapter 组件提供的 WebSocket API 建立连接(目前只有 Java 连接器支持)。
3. 通过客户端驱动程序直接与服务端程序(taosd)建立连接,这种连接方式下文中简称“本地连接”。
<center>(图:连接器工作原理)</center>
无论使用何种方式建立连接,连接器都提供了相同或相似的 API 操作数据库,都可以执行 SQL 语句,只是初始化连接的方式稍有不同,用户在使用上不会感到太大差别。
TDengine 提供了 RESTful 接口,应用程序无需安装任何依赖,只需发送 HTTP 请求就可以连接到 TDengine。同时也提供了各语言的连接器,使用驱动程序 (taosc) 连接 TDengine。通过驱动程序可以使用 TDengine 更丰富的功能。
关键不同点在于:
1. 使用 RESTful 方式,用户无需安装客户端驱动程序,具有跨平台和易用的优势。
2. WebSocket 方式可以看作对 RESTful 方式的优化,在批量拉取大量数据的场景具有性能优势。
3. 使用本地连接可以体验 TDengine 的全部功能,如[原生接口写入](/reference/connector/cpp#参数绑定-api)、[订阅](reference/connector/cpp#数据订阅接口)等等。
##
前提条件
##
安装连接器
在执行这一步之前,请确保有一个正在运行的,且可以访问到的 TDengine。以下所有示例代码,都假设 TDengine 安装在本机,且 fqdn(默认 localhost) 和 serverPort(默认 6030) 都使用默认配置。
<Tabs groupId="lang">
<TabItem label="Java" value="java">
如果使用 maven 管理项目,只需在 pom.xml 中加入以下依赖。
```xml
<dependency>
<groupId>com.taosdata.jdbc</groupId>
<artifactId>taos-jdbcdriver</artifactId>
<version>2.0.38</version>
</dependency>
```
</TabItem>
<TabItem label="Python" value="python">
使用 `pip` 从 PyPI 安装:
```
pip install taospy
```
从 Git URL 安装:
```
pip install git+https://github.com/taosdata/taos-connector-python.git
```
如果安装了 TDengine 服务端或客户端驱动程序,也可以从本地安装。比如:
```
pip install /usr/local/taos/connector/python
```
</TabItem>
<TabItem label="Go" value="go">
编辑 `go.mod` 添加 `driver-go` 依赖即可。
```go-mod title=go.mod
module goexample
go 1.17
require github.com/taosdata/driver-go/v2 develop
```
:::note
driver-go 使用 cgo 封装了 taosc 的 API。cgo 需要使用 gcc 编译 C 的源码。因此需要确保你的系统上有 gcc。
## 建立连接
:::
### RESTful
</TabItem>
<TabItem label="Rust" value="rust">
如果你安装的是 TDengine 2.4 之后的版本,使用 RESTful 方式连接时还需启动 taosAdaper。
编辑 `Cargo.toml` 添加 `libtaos` 依赖即可。
```toml title=Cargo.toml
[dependencies]
libtaos = { version = "0.4.2"}
```
:::info
Rust 连接器通过不同的特性区分不同的连接方式。如果要建立 RESTful 连接,需要开启 `rest` 特性:
```toml
libtaos = { version = "*", features = ["rest"] }
```
<Tabs groupId="lang">
<TabItem label="curl" value="">
<ConnRest />
</TabItem>
<TabItem label="Java" value="java">
<ConnJava />
</TabItem>
<TabItem label="Go" value="go">
<ConnGo />
</TabItem>
<TabItem label="Rust" value="rust">
<ConnRust />
</TabItem>
<TabItem label="Node.js" value="node">
<ConnNode />
</TabItem>
:::
</TabItem>
<TabItem label="Node.js" value="node">
Node.js 连接器通过不同的包提供不同的连接方式。
1. 安装 Node.js 本地连接器
```
npm i td2.0-connector
```
:::note
推荐Node版本大于等于 `node-v12.8.0` 小于 `node-v13.0.0`
:::
2. 安装 Node.js RESTful 连接器
```
npm i td2.0-rest-connector
```
</TabItem>
<TabItem label="C#" value="csharp">
编辑项目配置文件中添加 [TDengine.Connector](https://www.nuget.org/packages/TDengine.Connector/) 的引用即可:
```xml title=csharp.csproj
<ItemGroup>
<PackageReference Include="TDengine.Connector" Version="1.0.6" />
</ItemGroup>
```
也可通过 dotnet 命令添加:
```
dotnet add package TDengine.Connector
```
</TabItem>
<TabItem label="R" value="r">
首先系统上要有 TDeninge 客户端驱动,安装目录下有`connector/jdbc/taos-jdbcdriver-xxx-dist.jar`。然后需要安装 R 的依赖包`RJDBC`:
```R
install.packages("RJDBC")
```
</TabItem>
</Tabs>
### 本地驱动
在没有安装 TDengine 服务端软件的系统上使用本地驱动连接 TDengine, 需要提前[安装客户端驱动程序](/reference/connector/#安装客户端驱动)。
:::note
需要单独安装客户端时,为避免客户端驱动和服务端不兼容,请尽量使用一致的版本。
## 建立连接
:::
在执行这一步之前,请确保有一个正在运行的,且可以访问到的 TDengine。以下示例代码,都假设 TDengine 安装在本机,且 fqdn(默认 localhost) 和 serverPort(默认 6030) 都使用默认配置。
<Tabs groupId="lang" defaultValue="java">
<TabItem label="Java" value="java">
<ConnJava
Native
/>
<ConnJava />
</TabItem>
<TabItem label="Python" value="python">
<ConnPythonNative />
</TabItem>
<TabItem label="Go" value="go">
<ConnGoNative
/>
<ConnGo
/>
</TabItem>
<TabItem label="Rust" value="rust">
<ConnRust
Native
/>
<ConnRust />
</TabItem>
<TabItem label="Node.js" value="node">
<ConnNodeNative />
<ConnNode />
</TabItem>
<TabItem label="C#" value="csharp">
<ConnCSNative />
</TabItem>
<TabItem label="R" value="r">
<ConnR/>
</TabItem>
<TabItem label="C" value="c">
<ConnC />
</TabItem>
</Tabs>
:::tip
在没有安装 TDengine 服务端程序的机器上建立本地连接,需要单独[安装客户端驱动](/reference/connector/#安装客户端驱动)。
为避免客户端驱动和服务端不兼容,请尽量使用一致的版本。另外还要配置好[FQDN](https://www.taosdata.com/blog/2020/09/11/1824.html)。
:::
docs-cn/14-reference/03-connector/java.mdx
浏览文件 @
1ae2f5ba
...
...
@@ -172,7 +172,8 @@ Connection conn = DriverManager.getConnection(jdbcUrl);
连接开启批量拉取方式:
```java
String url = "jdbc:TAOS-RS://taosdemo.com:6041/?user=root&password=taosdata";Properties properties = new Properties();
String url = "jdbc:TAOS-RS://taosdemo.com:6041/?user=root&password=taosdata";
Properties properties = new Properties();
properties.setProperty(TSDBDriver.PROPERTY_KEY_BATCH_LOAD, "true");
Connection connection = DriverManager.getConnection(url, properties);
```
...
...
docs-examples/java/pom.xml
浏览文件 @
1ae2f5ba
...
...
@@ -20,7 +20,7 @@
<dependency>
<groupId>
com.taosdata.jdbc
</groupId>
<artifactId>
taos-jdbcdriver
</artifactId>
<version>
2.0.3
7
</version>
<version>
2.0.3
8
</version>
</dependency>
<dependency>
<groupId>
junit
</groupId>
...
...
docs-examples/java/src/main/java/com/taos/example/RESTConnectExample.java
浏览文件 @
1ae2f5ba
...
...
@@ -8,18 +8,14 @@ import java.sql.SQLException;
import
java.util.Properties
;
public
class
RESTConnectExample
{
// ANCHOR: main
public
static
void
main
(
String
[]
args
)
throws
SQLException
{
String
jdbcUrl
=
"jdbc:TAOS-RS://localhost:6041?user=root&password=taosdata"
;
Properties
connProps
=
new
Properties
();
connProps
.
setProperty
(
TSDBDriver
.
PROPERTY_KEY_CHARSET
,
"UTF-8"
);
connProps
.
setProperty
(
TSDBDriver
.
PROPERTY_KEY_LOCALE
,
"en_US.UTF-8"
);
connProps
.
setProperty
(
TSDBDriver
.
PROPERTY_KEY_TIME_ZONE
,
"UTC-8"
);
Connection
conn
=
DriverManager
.
getConnection
(
jdbcUrl
,
connProps
);
System
.
out
.
println
(
"Connected"
);
conn
.
close
();
}
}
// use
// String jdbcUrl = "jdbc:TAOS-RS://localhost:6041/dbName?user=root&password=taosdata";
// if you want to connect to a default database.
\ No newline at end of file
// ANCHOR_END: main
}
\ No newline at end of file
docs-examples/java/src/main/java/com/taos/example/RestQueryExample.java
浏览文件 @
1ae2f5ba
...
...
@@ -49,7 +49,7 @@ public class RestQueryExample {
}
}
// possible
stdo
ut:
// possible
outp
ut:
// avg(voltage) location
// 222.0 Beijing.Haidian
// 219.0 Beijing.Chaoyang
docs-examples/java/src/main/java/com/taos/example/WSConnectExample.java
0 → 100644
浏览文件 @
1ae2f5ba
package
com.taos.example
;
import
com.taosdata.jdbc.TSDBDriver
;
import
java.sql.Connection
;
import
java.sql.DriverManager
;
import
java.sql.SQLException
;
import
java.util.Properties
;
public
class
WSConnectExample
{
// ANCHOR: main
public
static
void
main
(
String
[]
args
)
throws
SQLException
{
String
jdbcUrl
=
"jdbc:TAOS-RS://localhost:6041?user=root&password=taosdata"
;
Properties
connProps
=
new
Properties
();
connProps
.
setProperty
(
TSDBDriver
.
PROPERTY_KEY_BATCH_LOAD
,
"true"
);
Connection
conn
=
DriverManager
.
getConnection
(
jdbcUrl
,
connProps
);
System
.
out
.
println
(
"Connected"
);
conn
.
close
();
}
// ANCHOR_END: main
}
docs-examples/node/nativeexample/connect.js
浏览文件 @
1ae2f5ba
...
...
@@ -9,5 +9,5 @@ var conn = taos.connect({
conn
.
close
();
// run with: node connect.js
//
stdo
ut:
//
outp
ut:
// Successfully connected to TDengine
docs-examples/node/nativeexample/insert_example.js
浏览文件 @
1ae2f5ba
...
...
@@ -22,7 +22,7 @@ power.d1004 USING power.meters TAGS(Beijing.Haidian, 3) VALUES ('2018-10-03 14:3
}
// run with: node insert_example.js
//
stdo
ut:
//
outp
ut:
// Successfully connected to TDengine
// Query OK, 0 row(s) affected (0.00509570s)
// Query OK, 0 row(s) affected (0.00130880s)
...
...
docs-examples/node/nativeexample/query_example.js
浏览文件 @
1ae2f5ba
...
...
@@ -7,7 +7,7 @@ query.execute().then(function (result) {
result
.
pretty
();
});
//
stdo
ut:
//
outp
ut:
// Successfully connected to TDengine
// Query OK, 2 row(s) in set (0.00317767s)
...
...
docs-examples/node/package.json
浏览文件 @
1ae2f5ba
...
...
@@ -4,6 +4,7 @@
"main"
:
"index.js"
,
"license"
:
"MIT"
,
"dependencies"
:
{
"td2.0-connector"
:
"^2.0.11"
"td2.0-connector"
:
"^2.0.11"
,
"td2.0-rest-connector"
:
"^1.0.0"
}
}
docs-examples/node/restexample/connect.js
0 → 100644
浏览文件 @
1ae2f5ba
const
{
options
,
connect
}
=
require
(
"
td2.0-rest-connector
"
);
async
function
test
()
{
options
.
path
=
"
/rest/sqlt
"
;
options
.
host
=
"
localhost
"
;
let
conn
=
connect
(
options
);
let
cursor
=
conn
.
cursor
();
try
{
let
res
=
await
cursor
.
query
(
"
SELECT server_version()
"
);
res
.
toString
();
}
catch
(
err
)
{
console
.
log
(
err
);
}
}
test
();
// output:
// server_version() |
// ===================
// 2.4.0.12 |
docs-examples/python/async_query_example.py
浏览文件 @
1ae2f5ba
...
...
@@ -56,7 +56,7 @@ def test_query(conn):
if
__name__
==
"__main__"
:
test_query
(
connect
())
# possible
stdo
ut:
# possible
outp
ut:
# { count: 0, done: False }
# fetched 8 rows
# 1538548685000 10.300000 219
...
...
docs-examples/rust/restexample/examples/insert_example.rs
浏览文件 @
1ae2f5ba
...
...
@@ -14,5 +14,5 @@ async fn main() -> Result<(), Error> {
Ok
(())
}
//
stdo
ut:
//
outp
ut:
// TaosQueryData { column_meta: [ColumnMeta { name: "affected_rows", type_: Int, bytes: 4 }], rows: [[Int(8)]] }
docs-examples/rust/restexample/examples/query_example.rs
浏览文件 @
1ae2f5ba
...
...
@@ -33,7 +33,7 @@ async fn main() -> Result<(), Error> {
Ok
(())
}
//
stdo
ut:
//
outp
ut:
// ts current
// 2022-03-28 09:56:51.249 10.3
// 2022-03-28 09:56:51.749 12.6
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录