Skip to content

第 2 章 · 基本对话与代码生成

本章目标:掌握交互式 REPL 的使用方法,学会有效提问以生成高质量代码,理解上下文理解能力。

2.1 交互式 REPL 基础

在项目目录中启动 claude 后,你进入一个交互式对话环境:

text
╭───────────────────────────────────╮
│ Welcome to Claude Code!           │
│                                   │
│ /help for help                    │
│ Type your request and press Enter │
╰───────────────────────────────────╯

>

常用快捷键与命令

快捷键/命令功能
Enter发送消息
Shift+Tab多行输入模式
Ctrl+C取消当前操作或退出
/clear清空对话历史
/compact压缩上下文(长会话时节省 token)
/help查看帮助
/cost查看当前会话 token 用量
/exit退出

2.2 直接提问与代码生成

Claude Code 能理解自然语言描述并生成代码:

text
> 写一个 Python 函数,解析 CSV 文件并返回指定列的去重值列表

输出示例:

python
import csv
from typing import Any


def get_unique_column_values(filepath: str, column_name: str) -> list[Any]:
    """读取 CSV 文件并返回指定列的去重值列表。"""
    values = set()
    with open(filepath, newline='', encoding='utf-8') as f:
        reader = csv.DictReader(f)
        for row in reader:
            if column_name in row:
                values.add(row[column_name])
    return sorted(values)

提问技巧

  • 具体:"写一个函数解析 CSV 并返回列去重值" 比 "帮我处理 CSV" 效果好
  • 提供约束:指定语言、框架、错误处理方式
  • 给出上下文:告诉它项目用的 Python 版本、依赖库

2.3 上下文理解能力

Claude Code 会自动扫描项目目录来理解代码库:

text
> 这个项目的 API 端点有哪些?

它会:

  1. 扫描目录结构
  2. 查找路由定义文件
  3. 解析代码提取端点列表
  4. 以表格形式返回结果
text
找到以下 API 端点:
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/users | 获取用户列表 |
| POST | /api/users | 创建新用户 |
| GET | /api/users/{id} | 获取单个用户 |
...

2.4 输出格式

Claude Code 的回复使用 Markdown 格式:

  • 代码块:带语言标签的 fenced code block,可直接复制
  • 表格:结构化数据展示
  • 列表:步骤和要点
  • 粗体:关键概念高亮

2.5 追问与迭代

你可以对生成的代码持续追问和修改:

text
> 加上类型注解
> 给这个函数写单元测试
> 把异常处理改成抛出自定义异常而不是 ValueError

每轮对话都保留之前的上下文,Claude Code 知道你在说哪个函数。

本章小结

  • 使用 claude 进入 REPL,/clear 清空历史,/compact 压缩上下文;
  • 提问要具体,提供语言/框架/约束等上下文;
  • Claude Code 自动扫描项目目录理解代码库;
  • 支持多轮追问和迭代修改。

🧪 随堂测验

点击你认为正确的选项。答错时会展示正确答案与原因解析。

1. 哪个命令可以清空当前对话历史?

2. 当对话很长导致上下文接近上限时,应该使用什么命令?

3. 以下哪种提问方式最有可能获得高质量代码?

4. 如何查看当前会话消耗了多少 token?

🛠️ 动手实践

  1. 在项目中用 Claude Code 生成一个工具函数,然后追问添加测试。
  2. 让它列出你项目中的所有环境变量引用。
  3. /cost 查看当前会话的 token 用量。

完成后进入第 3 章