第 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 端点有哪些?它会:
- 扫描目录结构
- 查找路由定义文件
- 解析代码提取端点列表
- 以表格形式返回结果
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?
🛠️ 动手实践
- 在项目中用 Claude Code 生成一个工具函数,然后追问添加测试。
- 让它列出你项目中的所有环境变量引用。
- 用
/cost查看当前会话的 token 用量。
完成后进入第 3 章。