Swift Code Formatter
指导
Swift Code Formatter
Paste your Swift source code and reformat it instantly using swift-format-style rules. The tool normalizes indentation, brace placement, operator spacing, return-type arrows, optional handling, and trailing commas — entirely in your browser, with no upload.
Built for iOS, macOS, watchOS, and tvOS developers who need a deterministic, rule-based formatter for code reviews, snippets, blog posts, and one-off tweaks where running swift-format locally is not practical.
如何使用
- Paste your Swift source code into the input area, or click 尝试一个示例 to load a sample.
- Choose the indent size (2 spaces, 4 spaces, or tabs) and the maximum line width.
- 切换 按字母顺序排序导入, 在多行列表中添加尾随逗号,并且 Remove redundant semicolons as needed.
- 点击 格式 to apply the rules. The reformatted code appears with syntax highlighting.
- 使用 复制 或 下载 button to grab the formatted output.
特征
- 可配置的缩进 – 2 spaces, 4 spaces (swift-format default), or tabs.
- Brace and blank-line normalization – K&R brace style on the same line as the declaration; collapses runs of three or more blank lines.
- 操作符间距 – consistent spacing around
=, comparison operators,&&,||,??, and the closure / return-type arrow->. - 导入排序 – alphabetizes
importdeclarations, including@testable importand access-modified imports. - 尾随逗号 – optionally appends a trailing comma to the last element of multi-line argument lists and array literals.
- Semicolon stripping – removes redundant trailing semicolons that Swift does not require.
- String & comment safe – string literals (including multi-line
"""..."""strings) and comments are preserved verbatim. - Top-level spacing – inserts a blank line between top-level declarations such as
struct,class,protocol,extension,enum,actor,并且func. - 复制和下载 – one-click copy or save as
.swift. - Client-side – no code leaves your browser.
常问问题
-
What is swift-format and why is consistent formatting important?
swift-format is Apple's official source-code formatter for Swift, distributed alongside the Swift toolchain. It applies a fixed set of style rules — 4-space indentation, brace placement, operator spacing, line-length limits, and trailing-comma policy — so that every file in a project looks the same regardless of who wrote it. Consistent formatting reduces cognitive load during code review, prevents stylistic churn in diffs, and lets reviewers focus on logic rather than whitespace.
-
How does Swift's nil-coalescing operator differ from Kotlin's Elvis operator?
Both Swift's
??and Kotlin's?:return a default value when the left-hand side is nil/null, but they evaluate different types. Swift's??only applies toOptional<T>values and returns the unwrapped non-optional, soname ?? "Anon"requiresnameto be of typeString?. Kotlin's?:works on any nullable expression and is closer to a general 'left if non-null else right' operator. Both have surrounding-space conventions that this formatter applies automatically. -
Why does Swift use trailing closures and how does formatting affect them?
Swift permits a function's final closure argument to be written outside the parentheses, which makes higher-order calls like
array.map { $0 * 2 }read like control-flow statements. Formatters need to keep the closure's opening brace on the same line as the call, with a single space between the closing paren (or the function name, when parens are omitted) and the brace. Mis-formatting can fragment a one-liner into an awkward multi-line block; this tool preserves the trailing-closure idiom by enforcing the) {spacing rule and a single space before any brace. -
What is a value type versus a reference type in Swift?
Swift draws a sharp line between value types —
struct且enum— and reference types —class且actor. Value types are copied on assignment and on every function call, which makes them safer to share across threads and easier to reason about because mutations are local. Reference types share identity through pointers, so all references see the same underlying instance. Top-level declarations of either kind are typically separated by a blank line for readability — a rule this formatter applies automatically.
