Form 的构造使用

Form 的构造与其函数 get 的使用

创建 Form 类,并通过 get 获取 key 对应映射的 value。

代码如下:

示例中使用 Form 类的函数 get 获取指定 key = 1 的 value 值 2 。

import encoding.url.* main(): Int64 { var s = Form("1=2&2=3&1=2&&") print(s.get("1").getOrThrow()) return 0 }

运行结果如下:

2

Form 的构造与重复 key 情况下函数 get 的使用

创建 Form 类,并通过 get 获取 key 对应映射的 value。

代码如下:

示例中使用 Form 类的函数 get 获取指定 key = 1 的第一个 value 值 %6AD。value 中的 %6A 被解码为 j,因此得到 value 值 jD 。

import encoding.url.* main(): Int64 { var s = Form("2=3&1=%6AD&1=2") // 对于 %6A 解码成 j,重复的 key 调用 get 获取第一个 value 值 jD print(s.get("1").getOrThrow()) return 0 }

运行结果如下:

jD

Form 的构造与其他函数使用

分别调用 add,set,clone,打印输出前后变化。

代码如下:

import encoding.url.* main(): Int64 { var f = Form() // 给键 k 增加值 v1 和 v2。 f.add("k", "v1") f.add("k", "v2") // 调用 get 方法时,获取的是第一个值。 println(f.get("k").getOrThrow()) // 设定键 k 的值为 v f.set("k", "v") println(f.get("k").getOrThrow()) let clone_f = f.clone() // 给克隆出来的 clone_f 增加键值对。 clone_f.add("k1", "v1") // 通过 get 获得值 v1。 println(clone_f.get("k1").getOrThrow()) // 原来的 f 并没有键 k1,所以值是给的默认值 kkk。 println(f.get("k1") ?? "kkk") 0 }

运行结果如下:

v1 v v1 kkk