

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 代码示例
<a name="inline-suggestions-code-examples"></a>

Amazon Q 可以在不同的场景中提供代码建议。要了解它如何帮助您用自己选择的编程语言编写代码，请查看以下代码示例。

**Topics**
+ [使用 Amazon Q 开发者版完成单行代码](single-line-completion.md)
+ [使用 Amazon Q 开发者版生成完整函数](full-function-generation.md)
+ [使用 Amazon Q 开发者版完成代码块](code-block.md)
+ [使用 Amazon Q 开发者版完成 Docstring、JSDoc 和 Javadoc](docstring-javadoc.md)
+ [使用 Amazon Q 开发者版提供逐行建议](line-by-line-1.md)

# 使用 Amazon Q 开发者版完成单行代码
<a name="single-line-completion"></a>

开始输入单行代码时，Amazon Q 会根据当前和之前的输入提出建议。

------
#### [ C\$1\$1 ]

![\[使用 C++ 的单行完成功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/single-line-completion-c-plus.gif)


------
#### [ JavaScript ]

在此示例中，Amazon Q 完成了开发者开始的一行代码。

![\[单行完成功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/javascript_vscode_SingleLine.gif)


------
#### [ TypeScript ]

在此示例中，用户输入了完整的注释，然后 Amazon Q 提供了对应的代码。

![\[单行完成功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/typescript_vscode_single-line.gif)


------
#### [ C\$1 ]

在此示例中，Amazon Q 根据注释提供了单行建议。

![\[单行完成功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/c-sharp-single-line.gif)


------
#### [ Shell ]

在下图中，Amazon Q 提供了有关如何完成单行代码的建议。

![\[单行完成功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/jb-single-line-shell.gif)


------
#### [ Java ]

开始输入单行代码时，Amazon Q 会根据当前和之前的输入提出建议。

在下面的示例中，在 Java 中，用户将字符串 `public` 输入现有的类。

根据输入，Amazon Q 会生成主方法的签名建议。

![\[单行完成功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/cw-c9-single-line-completion.gif)


------
#### [ Python ]

在此示例中，Amazon Q 根据开发者的注释推荐了一行代码。

![\[单行完成功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/python_sagemakerstudio_singleline.gif)


------

# 使用 Amazon Q 开发者版生成完整函数
<a name="full-function-generation"></a>

Amazon Q 可以根据您编写的注释生成完整函数。在您完成注释后，Amazon Q 会提出函数签名建议。如果接受此建议，Amazon Q 会自动将光标移到函数的下一部分并提出建议。即使您在建议之间输入了其他注释或代码行，Amazon Q 也会根据这些输入进行重构。

------
#### [ C ]

![\[使用 C 的完整函数完成的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/full-function-completion-c-plus.gif)


------
#### [ C\$1\$1 ]

![\[使用 C++ 的完整函数完成的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/full-function-completion-c-plus.gif)


------
#### [ JavaScript ]

在以下示例中，用户根据一组注释生成完整函数，然后进行编辑。

![\[完整函数生成功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/javascript_lambda_FullFunctionGeneration.gif)


在下图中，用户写入了一个用于从 Amazon S3 读取文件的函数签名。Amazon Q 随后提出了 `read_from_s3` 方法的完整实现建议。

![\[\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/whisper-function-read-from-s3.png)


**注意**  
有时，如上例所示，Amazon Q 会在建议中包含 `import` 语句。建议将这些 `import` 语句手动移动到文件顶部。

再举一个例子，在下图中，用户编写了一个函数签名。Amazon Q 随后提出了 `quicksort` 方法的完整实现建议。

![\[\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/whisper-function-quicksort.png)


Amazon Q 在提出建议时会考虑过去的代码片段。在下图中，上例中的用户已经接受了上面有关 `quicksort` 的建议实现方法。然后，用户为泛型 `sort` 方法编写了另一个函数签名。Amazon Q 随后根据已经编写的内容提出了一个实现建议。

![\[\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/whisper-function-from-context-sort.png)


在下图中，用户编写了一条注释。根据这条注释，Amazon Q 随后提出了一个函数签名建议。

![\[\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/whisper-comment-binary-search.png)


在下图中，上例中的用户已经接受了建议的函数签名。然后 Amazon Q 提出了 `binary_search` 函数的完整实现建议。

![\[\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/whisper-function-binary-search.png)


------
#### [ Java ]

以下列表包含 Amazon Q 如何提出建议并引导您完成创建函数的整个过程的示例。

1. 在下面的示例中，用户输入了注释。Amazon Q 提出了函数签名建议。

   在用户接受该建议后，Amazon Q 会提出函数主体建议。  
![\[通过注释生成的函数示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/cw-c9-function-from-comment.gif)

1. 在下图中，用户在接受 Amazon Q 的建议之前于函数主体中输入注释。在下行中，Amazon Q 根据注释生成建议。  
![\[通过现有代码块内的注释生成的函数示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/cw-c9-function-from-comment-within-block.gif)

------
#### [ C\$1 ]

在以下示例中，Amazon Q 提出了完整函数建议。

![\[Function declaration for ListTables with AmazonDynamoDBClient parameter in code editor.\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/c-sharp-full-function.gif)


------
#### [ TypeScript ]

在以下示例中，Amazon Q 根据用户的文档字符串生成了函数。

![\[完整函数完成功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/typescript_vscode_function.gif)


------
#### [ Python ]

Amazon Q 可以根据您编写的注释生成完整函数。在您完成注释后，Amazon Q 会提出函数签名建议。如果接受此建议，Amazon Q 会自动将光标移到函数的下一部分并提出建议。即使您在建议之间输入了其他注释或代码行，Amazon Q 也会根据这些输入进行重构。

在以下示例中，Amazon Q 既生成了完整函数，又生成了相应的单元测试。

![\[完整函数完成功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/python_pycharm_fullfunction_unittests.GIF)


以下列表包含 Amazon Q 如何提出建议并引导您完成创建函数的整个过程的示例。

1. 在下图中，用户输入了注释。位于评论下方的函数签名是来自 Amazon Q 的建议。  
![\[alt_text\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/cw-jb-comment-062022.png)

1. 在下图中，用户接受了 Amazon Q 关于函数签名的建议。接受该建议使光标自动向前移动，Amazon Q 针对函数主体提出了新的建议。  
![\[alt_text\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/cw-jb-commentfunctionadvance-062022.png)

1. 在下图中，用户在接受 Amazon Q 的建议之前于函数主体中输入注释。在下行中，Amazon Q 根据注释内容生成了新建议。  
![\[根据注释内容生成新建议\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/cw-jb-commentfunction-062022.png)

在此示例中，Amazon Q 在用户键入部分签名后提出了完整函数建议。

![\[完整函数功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/python_sagemakerstudio_fullfunction.gif)


------

# 使用 Amazon Q 开发者版完成代码块
<a name="code-block"></a>

代码块完成用于完成您的 `if/for/while/try` 代码块。

------
#### [ C ]

![\[使用 C 的代码块完成功能的示例\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/block-completion-c.gif)


------
#### [ C\$1\$1 ]

![\[使用 C++ 的代码块完成功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/block-completion-c-plus.gif)


------
#### [ Java ]

在下面的示例中，用户输入了一个 `if` 语句的签名。该语句的主体是来自 Amazon Q 的建议。

![\[代码块完成功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/cw-c9-block-completion.gif)


------
#### [ C\$1 ]

在下图中，Amazon Q 建议了一种完成该函数的方法。

![\[代码块完成功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/c-sharp-block.gif)


------
#### [ TypeScript ]

在下图中，Amazon Q 建议了一种完成该函数的方法。

![\[代码块完成功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/typescript_vscode_block-completion.gif)


------
#### [ Python ]

在此示例中，Amazon Q 根据上下文提出了代码块建议。

![\[代码块功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/python_sagemakerstudio_codeblock.gif)


------

# 使用 Amazon Q 开发者版完成 Docstring、JSDoc 和 Javadoc
<a name="docstring-javadoc"></a>

Amazon Q 可以帮助您在代码中生成或完成文档。

------
#### [ C\$1\$1 ]

![\[使用 C++ 的文档字符串完成功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/docstring-completion-c-plus.gif)


------
#### [ Javascript ]

在此示例中，Amazon Q 根据现有常量填写 JSDoc 参数。

![\[JSDoc 完成功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/javascript_vscode_JSDocCompletion.gif)


------
#### [ C\$1 ]

在此示例中，Amazon Q 根据现有常量填写 JSDoc 参数。

![\[使用 DocString 完成的 C3 示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/c-sharp-docstring.gif)


------
#### [ Java ]

下面的示例改编自 [Oracle 网站上的一个示例](https://www.oracle.com/technical-resources/articles/java/javadoc-tool.html)。

在下图中，用户已开始输入一个文档字符串。Amazon Q 提供了建议的词语以添加到文档字符串。

![\[建议一个函数来完成文档字符串\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/jb-docstring-java.png)


下面的示例改编自 [Oracle 网站上的一个示例](https://www.oracle.com/technical-resources/articles/java/javadoc-tool.html)。

在下面的示例中，在 Java 中，用户输入文档字符串。Amazon Q 建议了一个函数来处理文档字符串。

![\[基于 Javadoc 的代码完成示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/cw-c9-javadoc.gif)


------
#### [ Python ]

在此示例中，Amazon Q 根据相关上下文提出了文档字符串建议。

![\[文档字符串功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/python_sagemakerstudio_commentblock.gif)


------

# 使用 Amazon Q 开发者版提供逐行建议
<a name="line-by-line-1"></a>

根据具体使用案例，Amazon Q 可能无法在一个建议中生成完整的函数块。但是，Amazon Q 仍然可以提供逐行建议。

------
#### [ Go and GoLand ]

在此示例中，Amazon Q 提供了逐行建议。

![\[逐行完成功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/jb-line-by-line-go.gif)


这是逐行建议的另一个示例，这次是单元测试。

![\[逐行完成功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/jb-line-by-line-unit-test-go.gif)


------
#### [ C\$1\$1 and CLion ]

在此示例中，Amazon Q 提供了逐行建议。

![\[逐行完成功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/jb-line-by-line-cpp.gif)


------
#### [ Python ]

在下图中，客户编写了一条初步注释，表示他们希望向某个 Amazon CloudWatch Logs 组发布一条消息。鉴于这一上下文，Amazon Q 只能在第一个建议中提出客户端初始化代码建议，如下图所示。

![\[\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/whisper-line-by-line-cwlogs-1.png)


但是，如果用户继续请求逐行建议，Amazon Q 还会继续根据已经编写的代码提出代码行建议。

![\[\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/whisper-line-by-line-cwlogs-2.png)


**注意**  
在上例中，`VPCFlowLogs` 可能不是正确的常量值。在 Amazon Q 提出建议的同时，务必要注意根据需要重命名任何常量。

Amazon Q 最终可以完成整个代码块，如下图所示。

![\[\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/whisper-line-by-line-cwlogs-3.png)


在此示例中，Amazon Q 提供了逐行建议。

![\[逐行完成功能的示例。\]](http://docs.aws.amazon.com/zh_cn/amazonq/latest/qdeveloper-ug/images/python_sagemakerstudio_linebyline.gif)


------