提交 b00cdfc6 编写于 作者: W wizardforcel

2020-06-21 17:02:48

上级 478b6534
......@@ -369,7 +369,7 @@ var words = new List<string> { "stone", "rock", "falcon", "sky" };
```
使用`new`关键字创建一个列表对象。 在尖括号`&lt;&gt;`之间,我们指定列表元素的数据类型。 该列表用大括号`{}`中的元素初始化。
使用`new`关键字创建一个列表对象。 在尖括号`<>`之间,我们指定列表元素的数据类型。 该列表用大括号`{}`中的元素初始化。
```cs
Console.WriteLine(words[2]);
......
......@@ -1090,7 +1090,7 @@ $ dotnet run
## C# 可空类型
不能为值类型分配`null`文字,可以给引用类型分配值。 使用数据库的应用处理空值。 因此,C# 语言中引入了特殊的可空类型。 可空类型是`System.Nullable&lt;T&gt;`结构的实例。
不能为值类型分配`null`文字,可以给引用类型分配值。 使用数据库的应用处理空值。 因此,C# 语言中引入了特殊的可空类型。 可空类型是`System.Nullable<T>`结构的实例。
`Program.cs`
......@@ -1119,7 +1119,7 @@ int? age = null;
```
有两种方法可以声明可为空的类型。 在`Nullable&lt;T&gt;`通用结构中,在尖括号之间指定了类型,或者我们可以在类型后使用问号。 后者实际上是第一种表示法的简写。
有两种方法可以声明可为空的类型。 在`Nullable<T>`通用结构中,在尖括号之间指定了类型,或者我们可以在类型后使用问号。 后者实际上是第一种表示法的简写。
```cs
$ dotnet run
......
......@@ -579,7 +579,7 @@ namespace SwitchExpressions
```
该变量位于`switch`关键字之前。 `case``:`元素替换为`=&gt;``default`案例被`_`丢弃替换。 主体是表达式,而不是语句。
该变量位于`switch`关键字之前。 `case``:`元素替换为`=>``default`案例被`_`丢弃替换。 主体是表达式,而不是语句。
## C# `while`语句
......
......@@ -670,7 +670,7 @@ act();
我们实例化一个动作委托。 委托指向`ShowMessage()`方法。 调用委托时,将执行`ShowMessage()`方法。
有多种类型的动作委托。 例如,`Action&lt;T&gt;`委托封装了一个采用单个参数且不返回值的方法。
有多种类型的动作委托。 例如,`Action<T>`委托封装了一个采用单个参数且不返回值的方法。
`Program.cs`
......@@ -704,7 +704,7 @@ act("C# language");
```
我们创建动作&lt; T &gt;委托的实例,并使用一个参数对其进行调用。
我们创建`Action<T>`委托的实例,并使用一个参数对其进行调用。
### C# 谓词委托
......
......@@ -14,7 +14,7 @@ C# 中有三种不同的集合类型:
The generic collections are found under `System.Collections.Generic`. Generic collections are more flexible and are the preferred way to work with data. Generics enhance code reuse, type safety, and performance. The generic collections include `Dictionary<T, T>`, `List<T>`, `Queue<T>`, `SortedList<T>`, and `Stack<T>`.
并发集合包括`BlockingCollection&lt;T&gt;``ConcurrentDictionary&lt;T, T&gt;``ConcurrentQueue&lt;T&gt;``ConcurrentStack&lt;T&gt;`
并发集合包括`BlockingCollection<T>``ConcurrentDictionary<T, T>``ConcurrentQueue<T>``ConcurrentStack<T>`
通用编程是一种计算机编程样式,其中,算法根据待指定的后来的类型编写,然后在需要作为参数提供的特定类型时实例化。 这种方法由 Ada 于 1983 年率先提出,它允许编写仅在使用时所使用的类型集不同的常见功能或类型,从而减少了重复。 (维基百科)
......@@ -171,7 +171,7 @@ var langs = new List<string>();
```
将创建一个通用动态数组。 我们指定将使用在&lt; &gt;字符内指定类型的字符串。
将创建一个通用动态数组。 我们指定将使用在`<>`字符内指定类型的字符串。
```cs
langs.Add("Java");
......@@ -276,7 +276,7 @@ $ dotnet run
## C# `SortedList`
`SortedList&lt;T, T&gt;`表示已排序的键/值对的集合。
`SortedList<T, T>`表示已排序的键/值对的集合。
`Program.cs`
......
......@@ -204,7 +204,7 @@ Directory.Move(sourceDir, destDir);
## C# 列出驱动器
`Directory.GetLogicalDrives()``&lt;drive letter&gt;:\`的形式检索计算机上逻辑驱动器的名称。
`Directory.GetLogicalDrives()``<drive letter>:\`的形式检索计算机上逻辑驱动器的名称。
`Program.cs`
......
......@@ -65,7 +65,7 @@ var domains = new Dictionary<string, string>
```
创建一个新的字典。 在尖括号`&lt;&gt;`之间,我们指定键和值的数据类型。 新的键/值元素对写在嵌套的`{}`括号内; 每对之间用逗号分隔。 例如,`"sk"`键引用`"Slovakia"`值。
创建一个新的字典。 在尖括号`<>`之间,我们指定键和值的数据类型。 新的键/值元素对写在嵌套的`{}`括号内; 每对之间用逗号分隔。 例如,`"sk"`键引用`"Slovakia"`值。
```cs
Console.WriteLine(domains["sk"]);
......
......@@ -432,7 +432,7 @@ File.WriteAllBytes(localPath, imageBytes);
## C# `HttpClient` 基本认证
在 HTTP 协议中,基本访问认证是 HTTP 用户代理(例如 Web 浏览器或控制台应用)在发出请求时提供用户名和密码的方法。 在基本 HTTP 认证中,请求包含`Authorization: Basic &lt;credentials&gt;`形式的标头字段,其中凭据是由单个冒号`:`连接的 id 和密码的 base64 编码。
在 HTTP 协议中,基本访问认证是 HTTP 用户代理(例如 Web 浏览器或控制台应用)在发出请求时提供用户名和密码的方法。 在基本 HTTP 认证中,请求包含`Authorization: Basic <credentials>`形式的标头字段,其中凭据是由单个冒号`:`连接的 id 和密码的 base64 编码。
> **注意**:凭证未加密; 因此,必须将 HTTP 基本认证与 HTTPS 协议一起使用。
......
......@@ -431,7 +431,7 @@ private final int MARKED_MINE_CELL = COVERED_MINE_CELL + MARK_FOR_CELL;
```
`COVERED_MINE_CELL`用于覆盖并包含地雷的区域。 `MARKED_MINE_CELL`代码&gt;是由用户标记的隐蔽地雷单元。
`COVERED_MINE_CELL`用于覆盖并包含地雷的区域。 `MARKED_MINE_CELL`代码是由用户标记的隐蔽地雷单元。
```java
private final int DRAW_MINE = 9;
......
......@@ -111,7 +111,7 @@ ctx.fillRect(0, 0, 100, 100);
```
`canvas`元素是使用`&lt;canvas&gt;``&lt;/canvas&gt;`标签创建的。 `width``height`属性设置页面内 canvas 元素的大小。 `id`属性标识 DOM 层次结构中的元素。
`canvas`元素是使用`<canvas>``</canvas>`标签创建的。 `width``height`属性设置页面内 canvas 元素的大小。 `id`属性标识 DOM 层次结构中的元素。
![HTML5 canvas rectangle](img/b4bff4c4863a93a3a99ec3dd907db8dd.jpg)
......
......@@ -186,7 +186,7 @@ if (dt1 < dt2) {
```
我们使用小于(&lt;)的比较运算符比较日期,并确定其中哪个位于日历的更早位置。
我们使用小于(`<`)的比较运算符比较日期,并确定其中哪个位于日历的更早位置。
`Output`
......
......@@ -259,7 +259,7 @@ out << "Slackware" << endl;
```
数据通过&lt; &lt;运算符写入。
数据通过`<<`运算符写入。
```cpp
file.close();
......@@ -929,7 +929,7 @@ QFileInfoList list = dir.entryInfoList();
```
`entryInfoList()`方法返回目录中所有文件和目录的`QFileInfo`对象的列表,并通过过滤和排序方法进行过滤和排序。 `QFileInfoList``QList&lt;QFileInfo>`的同义词。
`entryInfoList()`方法返回目录中所有文件和目录的`QFileInfo`对象的列表,并通过过滤和排序方法进行过滤和排序。 `QFileInfoList``QList<QFileInfo>`的同义词。
```cpp
foreach (QFileInfo finfo, list) {
......
......@@ -275,7 +275,7 @@ bind .fr.lb <<ListboxSelect>> { setLabel [%W curselection]}
```
当我们在列表框中选择一个项目时,将生成`<&lt;ListboxSelect&gt;>`事件。 我们将`setLabel`过程绑定到此事件。 我们还向过程发送参数。 当前所选值的索引。 `%W curselection`返回索引。 `%W`是有关小部件的处理程序,`curselection`是在此小部件上执行的命令。
当我们在列表框中选择一个项目时,将生成`<<ListboxSelect>>`事件。 我们将`setLabel`过程绑定到此事件。 我们还向过程发送参数。 当前所选值的索引。 `%W curselection`返回索引。 `%W`是有关小部件的处理程序,`curselection`是在此小部件上执行的命令。
```tcl
proc setLabel { idx } {
......
......@@ -220,7 +220,7 @@ public function on_changed($sender) {
```
我们从小部件中获取值,并将其存储在`$this-&gt;cur_value`变量中以备后用。 我们重新绘制刻录的小部件。
我们从小部件中获取值,并将其存储在`$this->cur_value`变量中以备后用。 我们重新绘制刻录的小部件。
![Burning widget](img/ba69f46f9147f0768c89af8b06b0a8f1.jpg)
......
......@@ -288,7 +288,7 @@ if ($this->inGame) {
```
`on_expose()`方法内部,我们检查`$this-&gt;inGame`变量。 如果为真,则绘制对象。 苹果和蛇的关节。 否则,我们显示“游戏结束”文本。
`on_expose()`方法内部,我们检查`$this->inGame`变量。 如果为真,则绘制对象。 苹果和蛇的关节。 否则,我们显示“游戏结束”文本。
```php
public function draw_objects($cr) {
......@@ -439,7 +439,7 @@ if ($key == Gdk::KEY_Left and !$this->right) {
```
如果单击左光标键,则将`$this-&gt;left`变量设置为 true。 在`move()`方法中使用此变量来更改蛇对象的坐标。 还要注意,当蛇向右行驶时,我们不能立即向左转。
如果单击左光标键,则将`$this->left`变量设置为 true。 在`move()`方法中使用此变量来更改蛇对象的坐标。 还要注意,当蛇向右行驶时,我们不能立即向左转。
```php
<?php
......
......@@ -993,11 +993,11 @@ int main(void) {
```cpp
$ ./html_escape
#include &lt;stdio.h&gt;
#include <stdio.h>
int main(void) {
for (int i=1; i&lt;=10; i++) {
for (int i=1; i<=10; i++) {
printf(&quot;Bottle %d\n&quot;, i);
}
}
......
......@@ -186,7 +186,7 @@ if (dt1 < dt2) {
```
我们使用小于(&lt;)的比较运算符比较日期,并确定其中哪个位于日历的更早位置。
我们使用小于(`<`)的比较运算符比较日期,并确定其中哪个位于日历的更早位置。
输出:
......
......@@ -172,7 +172,7 @@ authors << "Galsworthy" << "Sienkiewicz";
```
&lt; &lt;运算符用于在列表中插入两个新项目。
`<<`运算符用于在列表中插入两个新项目。
```cpp
std::sort(authors.begin(), authors.end());
......
......@@ -259,7 +259,7 @@ out << "Slackware" << endl;
```
数据通过&lt; &lt;运算符写入。
数据通过`<<`运算符写入。
```cpp
file.close();
......@@ -931,7 +931,7 @@ QFileInfoList list = dir.entryInfoList();
```
`entryInfoList()`方法返回目录中所有文件和目录的`QFileInfo`对象的列表,并通过过滤和排序方法进行过滤和排序。 `QFileInfoList``QList&lt;QFileInfo>`的同义词。
`entryInfoList()`方法返回目录中所有文件和目录的`QFileInfo`对象的列表,并通过过滤和排序方法进行过滤和排序。 `QFileInfoList``QList<QFileInfo>`的同义词。
```cpp
foreach (QFileInfo finfo, list) {
......
......@@ -412,7 +412,7 @@ lb.bind("<<ListboxSelect>>", self.onSelect)
```
当我们在列表框中选择一个项目时,将生成`<&lt;ListboxSelect&gt;>`事件。 我们将`onSelect()`方法绑定到此事件。
当我们在列表框中选择一个项目时,将生成`<<ListboxSelect>>`事件。 我们将`onSelect()`方法绑定到此事件。
```py
self.var = StringVar()
......
......@@ -120,19 +120,19 @@ public class EventObjectEx extends JFrame {
var buffer = new StringBuffer("Modifiers: ");
if ((mod & ActionEvent.ALT_MASK) &lt; 0) {
if ((mod & ActionEvent.ALT_MASK) < 0) {
buffer.append("Alt ");
}
if ((mod & ActionEvent.SHIFT_MASK) &lt; 0) {
if ((mod & ActionEvent.SHIFT_MASK) < 0) {
buffer.append("Shift ");
}
if ((mod & ActionEvent.META_MASK) &lt; 0) {
if ((mod & ActionEvent.META_MASK) < 0) {
buffer.append("Meta ");
}
if ((mod & ActionEvent.CTRL_MASK) &lt; 0) {
if ((mod & ActionEvent.CTRL_MASK) < 0) {
buffer.append("Ctrl ");
}
......@@ -142,7 +142,7 @@ public class EventObjectEx extends JFrame {
public static void main(String[] args) {
EventQueue.invokeLater(() -&lt; {
EventQueue.invokeLater(() -> {
var ex = new EventObjectEx();
ex.setVisible(true);
});
......
......@@ -422,7 +422,7 @@ Connect(ID_TGBUTTON1, wxEVT_COMMAND_TOGGLEBUTTON_CLICKED,
```
如果单击切换按钮,则会生成`wxEVT_COMMAND_TOGGLEBUTTON_CLICKED`事件。 我们为此事件连接事件处理程序。 注意,我们没有将事件连接到按钮方法,而是连接到`wxFrame`。 小部件,它是切换按钮的高级父级。 之所以可以这样做,是因为命令事件会传播到其父对象。 在我们的例子中,按钮-&gt;面板-&gt;框。 如果要将事件连接到按钮,则必须创建派生的按钮类,这意味着需要做更多的工作。
如果单击切换按钮,则会生成`wxEVT_COMMAND_TOGGLEBUTTON_CLICKED`事件。 我们为此事件连接事件处理程序。 注意,我们没有将事件连接到按钮方法,而是连接到`wxFrame`。 小部件,它是切换按钮的高级父级。 之所以可以这样做,是因为命令事件会传播到其父对象。 在我们的例子中,按钮 -&gt; 面板 -&gt; 框。 如果要将事件连接到按钮,则必须创建派生的按钮类,这意味着需要做更多的工作。
```cpp
if ( colour->Blue() ) {
......
......@@ -88,7 +88,7 @@ public class JavaExternalIterationEx2 {
```
在该示例中,我们要从列表中删除所有等于“ sky”的单词。 这是出于演示目的; 从 Java8 开始,我们可以轻松地使用`removeIf()`方法删除元素:`words.removeIf(e -&gt; "sky".equals(e));`
在该示例中,我们要从列表中删除所有等于“ sky”的单词。 这是出于演示目的; 从 Java8 开始,我们可以轻松地使用`removeIf()`方法删除元素:`words.removeIf(e -> "sky".equals(e));`
```java
Exception in thread "main" java.util.ConcurrentModificationException
......
......@@ -55,7 +55,7 @@ List<String> langs = new ArrayList<>();
```
创建一个`ArrayList`。 在菱形括号(&lt; &gt;)中指定的数据类型将元素限制为该数据类型。 在我们的例子中,我们有一个字符串列表。
创建一个`ArrayList`。 在菱形括号(`<>`)中指定的数据类型将元素限制为该数据类型。 在我们的例子中,我们有一个字符串列表。
```java
langs.add("Java");
......
......@@ -15,7 +15,7 @@ Java `HashSet`教程显示了如何使用 Java `HashSet`集合。
* `HashSet()`-构造一个默认的空集。
* `HashSet(int initialCapacity)`-使用给定的初始容量构造一个新的空集。 当元素添加到`HashSet`时,容量会自动增长。
* `HashSet(int initialCapacity, float loadFactor)`-使用给定的初始容量和负载因子构造一个新的空集。
* `HashSet(Collection&lt;? extends E&gt; c)`-构造一个新集合,其中包含指定集合的​​元素。
* `HashSet(Collection<? extends E> c)`-构造一个新集合,其中包含指定集合的​​元素。
`E`是元素的类型。
......
......@@ -21,7 +21,7 @@ Java `HashMap`教程显示了如何使用 Java `HashMap`集合。
* `HashMap()`-构造一个空的`HashMap()`,其默认初始容量(16)和默认负载因子(0.75)。
* `HashMap(int initialCapacity)`-构造一个空的`HashMap()`,具有给定的初始容量和默认的负载系数(0.75)。
* `HashMap(int initialCapacity, float loadFactor)`-使用给定的初始容量和负载因子构造一个空的`HashMap()`
* `HashMap(Map&lt;? extends K,? extends V&gt; m)` —构造一个新的`HashMap()`,其映射与给定的`Map`相同。
* `HashMap(Map<? extends K,? extends V> m)` —构造一个新的`HashMap()`,其映射与给定的`Map`相同。
`K`是映射键的类型,`V`是映射值的类型。
......
......@@ -834,7 +834,7 @@ BEGIN {
```
该程序在它识别的每个关键字周围添加&lt; kwd &gt;&lt; / kwd &gt;标签。 这是一个基本示例; 它适用于单独单词的关键字。 它没有解决更复杂的结构。
该程序在它识别的每个关键字周围添加`<kwd>``</kwd>`标签。 这是一个基本示例; 它适用于单独单词的关键字。 它没有解决更复杂的结构。
```sh
# load java keywords
......
......@@ -506,11 +506,11 @@ The data is {{ data | raw }}
```php
<p>
The data is &lt;script src=&#039;http::/example.com/nastyscript.js&#039;&gt;&lt;/script&gt;
The data is <script src="http:/example.com/nastyscript.js"></script>
</p>
<p>
The data is <script src='http::/example.com/nastyscript.js'></script>
The data is <script src='http:/example.com/nastyscript.js'></script>
</p>
```
......
......@@ -254,7 +254,7 @@ print(f'{now:%Y-%m-%d %H:%M}')
```
该示例显示格式化的当前日期时间。 日期时间格式说明符位于&lt;colon&gt;&lt;/colon&gt;字符之后。
该示例显示格式化的当前日期时间。 日期时间格式说明符位于`:`字符之后。
```py
$ python format_datetime.py
......
......@@ -36,7 +36,7 @@ Type "help", "copyright", "credits" or "license" for more information.
```
这是 Python 解释器的欢迎消息。 我们在机器上看到了 Python 版本。 在我们的例子中是 Python 3.5.2。 “ &gt; &gt; &gt;”是在 Python 交互模式下使用的提示。 要离开解释器并返回外壳,我们可以输入 `Ctrl + D``quit()`。 键入 `Ctrl + L` 将清除 Python 解释器的屏幕。
这是 Python 解释器的欢迎消息。 我们在机器上看到了 Python 版本。 在我们的例子中是 Python 3.5.2。 “`>>>`”是在 Python 交互模式下使用的提示。 要离开解释器并返回外壳,我们可以输入 `Ctrl + D``quit()`。 键入 `Ctrl + L` 将清除 Python 解释器的屏幕。
现在我们可以查询一些有用的信息。
......
......@@ -486,7 +486,7 @@ end
```
我们创建`Living`对象的定义。 该对象继承自`Being`对象。 &lt;运算符用于创建继承关系。 `to_s`方法被覆盖。
我们创建`Living`对象的定义。 该对象继承自`Being`对象。 `<`运算符用于创建继承关系。 `to_s`方法被覆盖。
```ruby
l = Living.new
......
......@@ -377,7 +377,7 @@ lang = "Perl" << " programming" << " language"
```
可以用来连接字符串的另一个运算符是`<&lt;`。
可以用来连接字符串的另一个运算符是`<<`。
```ruby
lang = "Java".concat(" programming").concat(" language")
......
......@@ -988,7 +988,7 @@ lts << 'L' << 'M'
```
&lt; &lt;`push`方法的同义词。 它将元素添加到数组。 可以在链中调用此运算符/方法。
`<<``push`方法的同义词。 它将元素添加到数组。 可以在链中调用此运算符/方法。
```ruby
lts.unshift 'A', 'B', 'C'
......
......@@ -416,7 +416,7 @@ end
```
另一种方法是将方法定义放在`class &lt;&lt; self`构造之后。
另一种方法是将方法定义放在`class << self`构造之后。
```ruby
def Rock.info
......
......@@ -325,7 +325,7 @@ public Optional<City> findById(Long id) {
```
`findById()`返回可选的&lt;城市&gt;
`findById()`返回`Optional<City>`
`com/zetcode/MyRunner.java`
......
......@@ -198,7 +198,7 @@ public class MyController {
```
`getImage()`方法的返回类型设置为`ResponseEntity&lt;byte[]&gt;`
`getImage()`方法的返回类型设置为`ResponseEntity<byte[]>`
```java
byte[] bytes = StreamUtils.copyToByteArray(imgFile.getInputStream());
......@@ -253,7 +253,7 @@ public class MyController {
```
`getImage()`方法的返回类型设置为`ResponseEntity&lt;InputStreamResource&gt;`
`getImage()`方法的返回类型设置为`ResponseEntity<InputStreamResource>`
```java
return ResponseEntity
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册