Skip to content
  • Home
  • Code
  • iOS & Swift
  • Combine
  • RxSwift
  • SwiftUI
  • Flutter & Dart
  • Tutorials
  • Art
  • Blog
Fx Studio
  • Home
  • Code
  • iOS & Swift
  • Combine
  • RxSwift
  • SwiftUI
  • Flutter & Dart
  • Tutorials
  • Art
  • Blog
Written by chuotfx on May 14, 2025

[Swift 6.2] Raw Identifiers – Đặt tên hàm có dấu cách, tại sao không?

Code . iOS & Swift

Contents

  • Raw Identifiers là gì?
  • Ý đồ của Swift: Tại sao lại cần “khoảng trắng”?
  • Phản hồi cộng đồng: Khen có, chê cũng nhiều!
  • Hạn chế nhỏ nhưng cần lưu ý
  • Tương lai của Swift: Raw Identifiers sẽ đi đâu?
  • Tạm kết

Chào mừng bạn đến với Fx Studio. Bạn đã nghe tin hot chưa? Swift 6.2 vừa ra mắt với một tính năng mới toanh: Raw Identifiers – cho phép đặt tên hàm, biến, hay enum case với cả khoảng trắng và ký tự đặc biệt, miễn là bạn ôm chúng bằng cặp dấu ngoặc ngược (`).

Nghe có vẻ ngầu, nhưng cũng hơi… lạ lùng?

Hãy cùng khám phá tính năng này, ý đồ của đội ngũ Swift, những tranh cãi rôm rả, và cả một chút dự đoán về tương lai của Swift nhé!

Raw Identifiers là gì?

Raw Identifiers

Tưởng tượng bạn đang viết một hàm kiểm tra (test case) và muốn tên hàm thật rõ ràng, kiểu như: “Kiểm tra xem người dùng đăng nhập thành công”. Trước đây, bạn phải viết kiểu camelCase như testUserLoginSucceeds(). Giờ đây, với Raw Identifiers, bạn có thể viết thế này:

func `test user login succeeds`() {
    // Kiểm tra logic đăng nhập
    XCTAssertTrue(user.isLoggedIn)
}

Đúng vậy, dấu ngoặc ngược (`) chính là “vũ khí” giúp bạn nhét cả khoảng trắng vào tên hàm! Không chỉ hàm, bạn còn có thể dùng cho biến hoặc enum case. Ví dụ:

enum HTTPError: String {
    case `401` = "Unauthorized"
    case `404` = "Not Found"
}

let `user profile` = UserProfile(name: "Fx")

Tính năng này được giới thiệu trong Swift 6.2, như một phần trong nỗ lực làm cho mã nguồn dễ đọc hơn, đặc biệt trong các bài kiểm tra. Nó lấy cảm hứng từ các ngôn ngữ như Kotlin, nơi đặt tên linh hoạt đã được áp dụng từ lâu.

Ý đồ của Swift: Tại sao lại cần “khoảng trắng”?

Đội ngũ Swift không chỉ muốn chơi trội đâu, họ có lý do chính đáng đấy! Dưới đây là những ý đồ chính mà Raw Identifiers hướng tới:

  • Tăng tính dễ đọc: Đặc biệt trong testing, tên hàm dài và mô tả rõ hành vi (như test user login succeeds) giúp lập trình viên hiểu ngay bài kiểm tra làm gì. Không cần đoán mò từ camelCase.

  • Linh hoạt với hệ thống bên ngoài: Khi làm việc với API hoặc hệ thống có tên chứa khoảng trắng hoặc ký tự đặc biệt. Raw Identifiers giúp bạn khớp tên định danh một cách tự nhiên hơn. Ví dụ, nếu API trả về một mã lỗi kiểu 500 Internal Server Error, bạn có thể định nghĩa:

enum APIError: String {
    case `500 Internal Server Error` = "Server down"
}
  • Đặt nền móng cho tương lai: Swift luôn hướng tới việc trở thành ngôn ngữ linh hoạt và thân thiện. Raw Identifiers là một bước thử nghiệm, mở ra khả năng đặt tên sáng tạo hơn trong các trường hợp khác ngoài testing.

Theo bài viết trên Hacking with Swift, đội ngũ Swift muốn tính năng này giúp mã nguồn trở nên “gần gũi như ngôn ngữ tự nhiên”, đặc biệt trong các dự án lớn nơi tính rõ ràng là tối quan trọng.

Phản hồi cộng đồng: Khen có, chê cũng nhiều!

Tính năng mới nào cũng có “fan” và “anti-fan”, và Raw Identifiers không ngoại lệ. Cộng đồng Swift trên Reddit (Raw Identifiers are coming to Swift) đã có những phản hồi rất sôi nổi:

Team ủng hộ

  • Hữu ích cho testing: Một bình luận với 43 điểm cho rằng Raw Identifiers giúp giảm sự trùng lặp trong tên test case và làm chúng dễ hiểu hơn. Ví dụ, test that user can logout nghe tự nhiên hơn testUserCanLogout.
  • Linh hoạt hơn: Một số coder thấy tính năng này hữu ích khi làm việc với các hệ thống bên ngoài, như API hoặc cơ sở dữ liệu có tên không chuẩn.

Team phản đối

  • Không cần thiết: Một bình luận với 61 điểm thẳng thừng gọi đây là “lãng phí thời gian”. Họ cho rằng camelCase hay snake_case đã đủ tốt, và thêm khoảng trắng chỉ làm mã trông rối mắt.
  • Khó gõ dấu ngoặc ngược: Một số coder dùng bàn phím không phải tiếng Anh than thở rằng gõ dấu ` không tiện. Ai từng vật lộn với bàn phím quốc tế chắc hiểu cảm giác này!
  • Lo lắng về IDE: Một bình luận Score 5 đặt câu hỏi liệu Xcode có hỗ trợ tốt tính năng này không, như tự động hoàn thành hay kiểm tra cú pháp.
  • Nhìn chung, Raw Identifiers đang gây ra một cuộc tranh luận thú vị. Có người thấy nó “đỉnh của chóp”, có người lại bảo “thôi, để tôi dùng camelCase cho lành”.

Hạn chế nhỏ nhưng cần lưu ý

Dù vui vẻ và sáng tạo, Raw Identifiers cũng có giới hạn. Theo Hacking with Swift, bạn không thể dùng tên chỉ chứa ký tự toán tử, như + hay -, để tránh nhầm lẫn với các biểu thức toán học. Ví dụ, đoạn code sau sẽ không chạy:

func `+`() { } // Lỗi: Không được dùng chỉ ký tự toán tử

Ngoài ra, vì đây là tính năng mới, các công cụ như Xcode có thể cần thời gian để bắt kịp. Nếu bạn thử viết test user login succeeds mà Xcode chưa hỗ trợ gợi ý cú pháp, đừng vội cáu nhé!

Tương lai của Swift: Raw Identifiers sẽ đi đâu?

Vậy, Raw Identifiers có phải là “ngôi sao sáng” của Swift 6.2 không?

Hiện tại, nó giống như một món đồ chơi mới: thú vị, nhưng cần thời gian để chứng minh giá trị. Dưới đây là một dự đoán nhỏ về tương lai:

  • Cải tiến cho IDE: Xcode có thể sẽ sớm hỗ trợ tốt hơn, như tự động thêm dấu ngoặc ngược hoặc gợi ý tên có khoảng trắng. Điều này sẽ giúp tính năng trở nên thân thiện hơn, đặc biệt với những coder không quen gõ dấu `.
  • Mở rộng ứng dụng: Ngoài testing, Raw Identifiers có thể được dùng nhiều hơn trong các trường hợp như đặt tên biến hoặc hàm. Đặc biệt trong các dự án liên quan đến API hoặc dữ liệu không chuẩn.
  • Phản hồi định hình tương lai: Nếu cộng đồng tiếp tục tranh luận, đội ngũ Swift có thể tinh chỉnh tính năng này, chẳng hạn như thêm cách thay thế dấu ngoặc ngược hoặc giới hạn phạm vi sử dụng để tránh lạm dụng.

Swift luôn nổi tiếng với việc lắng nghe cộng đồng, nên Raw Identifiers có lẽ sẽ được “mài dũa” trong các phiên bản sau, như 6.3 hoặc 7.0. Dù sao, việc cho phép tên hàm có khoảng trắng là một dấu hiệu rằng Swift đang muốn phá vỡ giới hạn, làm mã nguồn gần gũi hơn với ngôn ngữ tự nhiên.

Tạm kết

Raw Identifiers trong Swift 6.2 là một tính năng vui nhộn, sáng tạo, và đầy tiềm năng. Nó giúp mã nguồn dễ đọc hơn, đặc biệt trong testing, nhưng cũng gây ra không ít tranh cãi. Nếu bạn là fan của sự đổi mới, hãy thử viết vài hàm kiểu test user can do cool stuff xem sao! Còn nếu bạn thuộc team “camelCase muôn năm”, cũng chẳng sao – Swift đủ linh hoạt để chiều lòng tất cả.

Nguồn tham khảo:

  • Hacking with Swift: What’s new in Swift 6.2
  • Reddit: Raw Identifiers are coming to Swift

Okay! Tới đây, mình xin kết thúc bài viết này. Nếu có gì thắc mắc hay góp ý cho mình. Thì bạn có thể để lại bình luận hoặc gửi email theo trang Contact.

Cảm ơn bạn đã đọc bài viết này!

FacebookTweetPinYummlyLinkedInPrintEmailShares30

Related Posts:

  • POP
    Lập trình hướng giao thức (POP) với Swift
  • feature_bg_swift_04
    Complete Concurrency với Swift 6
  • KeyPath
    KeyPath trong 10 phút - Swift
  • feature_bg_swift_10
    Swift Optional trong 10 phút
Tags: iOS, Swift
Written by chuotfx

Hãy ngồi xuống, uống miếng bánh và ăn miếng trà. Chúng ta cùng nhau đàm đạo về đời, về code nhóe!

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Donate – Buy me a coffee!

Fan page

Fx Studio

Tags

Actor Advanced Swift AI api AppDistribution autolayout basic ios tutorial blog ci/cd closure collectionview combine concurrency crashlytics dart dart basic dart tour Declarative delegate deploy design pattern fabric fastlane firebase flavor flutter GCD gradients iOS MVVM optional Prompt engineering protocol Python rxswift safearea Swift Swift 5.5 SwiftData SwiftUI SwiftUI Notes tableview testing TravisCI unittest

Recent Posts

  • Role-playing vs. Persona-based Prompting
  • [Swift 6.2] Raw Identifiers – Đặt tên hàm có dấu cách, tại sao không?
  • Vibe Coding là gì?
  • Cách Đọc Sách Lập Trình Nhanh và Hiệu Quả Bằng GEN AI
  • Nỗ Lực – Hành Trình Kiến Tạo Ý Nghĩa Cuộc Sống
  • Ai Sẽ Là Người Fix Bug Khi AI Thống Trị Lập Trình?
  • Thời Đại Của “Dev Tay To” Đã Qua Chưa?
  • Prompt Engineering – Con Đường Để Trở Thành Một Nghề Nghiệp
  • Vấn đề Ảo Giác (hallucination) khi tương tác với Gen AI và cách khắc phục nó qua Prompt
  • Điều Gì Xảy Ra Nếu… Những Người Dệt Mã Trở Thành Những Người Bảo Vệ Cuối Cùng Của Sự Sáng Tạo?

You may also like:

  • Complete Concurrency với Swift 6
    feature_bg_swift_04
  • Lập trình hướng giao thức (POP) với Swift
    POP
  • KeyPath trong 10 phút - Swift
    KeyPath
  • Regular Expression (Regex) trong Swift
    feature_bg_swiftui_4
  • Raw String trong 10 phút
    Raw String

Archives

  • May 2025 (2)
  • April 2025 (1)
  • March 2025 (8)
  • January 2025 (7)
  • December 2024 (4)
  • September 2024 (1)
  • July 2024 (1)
  • June 2024 (1)
  • May 2024 (4)
  • April 2024 (2)
  • March 2024 (5)
  • January 2024 (4)
  • February 2023 (1)
  • January 2023 (2)
  • November 2022 (2)
  • October 2022 (1)
  • September 2022 (5)
  • August 2022 (6)
  • July 2022 (7)
  • June 2022 (8)
  • May 2022 (5)
  • April 2022 (1)
  • March 2022 (3)
  • February 2022 (5)
  • January 2022 (4)
  • December 2021 (6)
  • November 2021 (8)
  • October 2021 (8)
  • September 2021 (8)
  • August 2021 (8)
  • July 2021 (9)
  • June 2021 (8)
  • May 2021 (7)
  • April 2021 (11)
  • March 2021 (12)
  • February 2021 (3)
  • January 2021 (3)
  • December 2020 (3)
  • November 2020 (9)
  • October 2020 (7)
  • September 2020 (17)
  • August 2020 (1)
  • July 2020 (3)
  • June 2020 (1)
  • May 2020 (2)
  • April 2020 (3)
  • March 2020 (20)
  • February 2020 (5)
  • January 2020 (2)
  • December 2019 (12)
  • November 2019 (12)
  • October 2019 (19)
  • September 2019 (17)
  • August 2019 (10)

About me

Education, Mini Game, Digital Art & Life of coders
Contacts:
contacts@fxstudio.dev

Fx Studio

  • Home
  • About me
  • Contact us
  • Mail
  • Privacy Policy
  • Donate
  • Sitemap

Categories

  • Art (1)
  • Blog (44)
  • Code (11)
  • Combine (22)
  • Flutter & Dart (24)
  • iOS & Swift (102)
  • No Category (1)
  • RxSwift (37)
  • SwiftUI (80)
  • Tutorials (87)

Newsletter

Stay up to date with our latest news and posts.
Loading

    Copyright © 2025 Fx Studio - All rights reserved.