# let

Published articles for let.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## How SQLite made Notion 30% Faster

DevFeed: [How SQLite made Notion 30% Faster](<https://devfeed.tech/articles/how-sqlite-made-notion-30-faster-17978.md>)

Original publisher: [Read original article](<https://newsletter.betterstack.com/p/how-sqlite-made-notion-30-faster>)

Author: Richard Oliver Bray

Published: 2024-11-06T14:00:53Z

Content type: article

Language: en

Sources: [Hacking Scale by Better Stack](<https://devfeed.tech/sources/hacking-scale-by-better-stack.md>)

Topics: [Notion](<https://devfeed.tech/topics/notion.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [browser](<https://devfeed.tech/topics/browser.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [caching](<https://devfeed.tech/tags/caching.md>), [let](<https://devfeed.tech/tags/let.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>), [tech](<https://devfeed.tech/tags/tech.md>)

### AI overview

This article examines why Notion's page navigation could feel slow with complex content and describes its attempts to improve browser caching. It focuses on using SQLite to cache data in the browser after LocalStorage and IndexedDB approaches had limitations.

### Source excerpt

Notion made a tough bet on emerging tech, and it paid off in a big way

## Concurrent Programming in Kotlin: Ensuring Thread Safety with Mutex

DevFeed: [Concurrent Programming in Kotlin: Ensuring Thread Safety with Mutex](<https://devfeed.tech/articles/concurrent-programming-in-kotlin-ensuring-thread-safety-with-mutex-23873.md>)

Original publisher: [Read original article](<https://engineering.premise.com/concurrent-programming-in-kotlin-ensuring-thread-safety-with-mutex-5d9c6b80644b?source=rss----c5fada0a103d---4>)

Author: Kwabena Bio Berko

Published: 2023-07-18T03:33:24Z

Content type: tutorial

Language: en

Sources: [Engineering at Premise - Medium](<https://devfeed.tech/sources/engineering-at-premise-medium.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>), [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [Database](<https://devfeed.tech/topics/database.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>)

Tags: [atomic](<https://devfeed.tech/tags/atomic.md>), [code](<https://devfeed.tech/tags/code.md>), [component](<https://devfeed.tech/tags/component.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [concurrent](<https://devfeed.tech/tags/concurrent.md>), [concurrent-programming](<https://devfeed.tech/tags/concurrent-programming.md>), [coroutine](<https://devfeed.tech/tags/coroutine.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [data](<https://devfeed.tech/tags/data.md>), [database](<https://devfeed.tech/tags/database.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [function](<https://devfeed.tech/tags/function.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [io](<https://devfeed.tech/tags/io.md>), [issue](<https://devfeed.tech/tags/issue.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [let](<https://devfeed.tech/tags/let.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [mutex](<https://devfeed.tech/tags/mutex.md>), [safety](<https://devfeed.tech/tags/safety.md>), [suspend](<https://devfeed.tech/tags/suspend.md>), [thread](<https://devfeed.tech/tags/thread.md>)

### AI overview

This Kotlin tutorial explains how Mutex provides mutual exclusion when multiple threads or coroutines call a refresh function. It shows how locking can prevent duplicate network and database operations, avoid race conditions, and preserve atomicity, while withLock can suspend callers until the current lock is released.

### Source excerpt

By Kwabena Bio Berko, Android Engineer Photo by Chris Ried on Unsplash I have recently been experimenting with mutual exclusion(Mutex), a concept in software engineering to solve race conditions when accessing shared resources. Let's assume we have a component with a refresh function that can be accessed from multiple threads or coroutines: https://medium.com/media/e19aa2a9d57bc105b841d28061a199b8/href In the implementation of this component, the function retrieves data from a remote resource and inserts it into the local database. However, these operations need to be atomic. Now, imagine if 10 threads call this function simultaneously, or even a few milliseconds apart. What happens? If you guessed that we make 10 network calls and 10 database IO operations to save the items, then you would be right, as confirmed by the below test: https://medium.com/media/9b279658dbf87021068ee21a913dc80e/hrefhttps://medium.com/media/81cdc164ad807fd45df77389c00bd4cc/href But that's not what we want. It's definitely not resource-friendly. To address this issue, we can use a Mutex. As the name suggests, a Mutex provides mutual exclusion for a specific portion of your code, imposing restrictions on the access to that portion in situations where multiple threads or coroutines may attempt to access it concurrently. In essence, Mutex allows only one thread or coroutine to work within the confines of that portion of the code at any given time. By introducing a Mutex in our refresh function, we can ensure that only one thread is executing the critical sections of the code, preventing race conditions and ensuring atomicity of the operations. https://medium.com/media/9d88a802b4c73f14ceb4d5527158af5d/href In the example above, whenever the refresh function is called, we check to see if the Mutex is already locked or been used. If not, we lock it and then perform our network call and save the results in our local database. This means that whenever another thread or coroutine calls this refresh

## Scope functions

DevFeed: [Scope functions](<https://devfeed.tech/articles/scope-functions-39306.md>)

Original publisher: [Read original article](<https://kt.academy/article/fk-scope-functions>)

Published: 2022-09-23T00:05:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [functions](<https://devfeed.tech/topics/functions.md>), [Library](<https://devfeed.tech/topics/library.md>), [object](<https://devfeed.tech/topics/object.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [Back end](<https://devfeed.tech/topics/backend.md>)

Tags: [also](<https://devfeed.tech/tags/also.md>), [apply](<https://devfeed.tech/tags/apply.md>), [backend](<https://devfeed.tech/tags/backend.md>), [functions](<https://devfeed.tech/tags/functions.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [let](<https://devfeed.tech/tags/let.md>), [scope-functions](<https://devfeed.tech/tags/scope-functions.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [with](<https://devfeed.tech/tags/with.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

A tutorial on Kotlin scope functions, including let, also, apply, and with. It explains how these standard-library extension functions transform or configure objects, presents application examples, and notes that scope-function-heavy code can make debugging harder.

### Source excerpt

What is let, also, apply and with, and how to use them in our applications.

## Scopes and Scope Functions

DevFeed: [Scopes and Scope Functions](<https://devfeed.tech/articles/scopes-and-scope-functions-25063.md>)

Original publisher: [Read original article](<https://typealias.com/start/kotlin-scopes-and-scope-functions/>)

Author: author@typealias.com (Dave Leeds)

Published: 2022-08-22T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dave Leeds on Kotlin - typealias.com](<https://devfeed.tech/sources/dave-leeds-on-kotlin-typealias-com.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Library](<https://devfeed.tech/topics/library.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [also](<https://devfeed.tech/tags/also.md>), [apply](<https://devfeed.tech/tags/apply.md>), [classes](<https://devfeed.tech/tags/classes.md>), [code](<https://devfeed.tech/tags/code.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [learn](<https://devfeed.tech/tags/learn.md>), [learn-to-program](<https://devfeed.tech/tags/learn-to-program.md>), [let](<https://devfeed.tech/tags/let.md>), [library](<https://devfeed.tech/tags/library.md>), [programming](<https://devfeed.tech/tags/programming.md>), [run](<https://devfeed.tech/tags/run.md>), [scope](<https://devfeed.tech/tags/scope.md>), [scope-function](<https://devfeed.tech/tags/scope-function.md>), [scope-functions](<https://devfeed.tech/tags/scope-functions.md>), [shadowing](<https://devfeed.tech/tags/shadowing.md>), [standard](<https://devfeed.tech/tags/standard.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [variable](<https://devfeed.tech/tags/variable.md>), [visibility](<https://devfeed.tech/tags/visibility.md>), [with](<https://devfeed.tech/tags/with.md>)

### AI overview

A Kotlin tutorial chapter introduces scopes as regions of code where variables, functions, and classes can be declared, then begins explaining Kotlin's five scope functions from the standard library.

### Source excerpt

In the last chapter, we learned how to create extension functions, which can be called using dot notation. In this chapter, we'll learn about scope functions, which are five particular functions that Kotlin gives us in its standard library. Before we can understand scope functions, though, it helps to first understand scopes. Introduction to Scopes In Kotlin, a scope is a section of code where we can declare new variables, functions, classes, and more.

## Tutorial: Set up an Identity-Aware Access Proxy as a Bastion Host in AWS

DevFeed: [Tutorial: Set up an Identity-Aware Access Proxy as a Bastion Host in AWS](<https://devfeed.tech/articles/tutorial-set-up-an-identity-aware-access-proxy-as-a-bastion-host-in-aws-29693.md>)

Original publisher: [Read original article](<https://goteleport.com/blog/how-to-setup-aws-bastion/>)

Author: info@goteleport.com (Janakiram MSV)

Published: 2022-03-10T00:00:00Z

Content type: tutorial

Language: en

Sources: [Teleport](<https://devfeed.tech/sources/teleport.md>)

Topics: [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [Zero Trust](<https://devfeed.tech/topics/zero-trust.md>), [Security](<https://devfeed.tech/topics/security.md>), [Amazon EC2](<https://devfeed.tech/topics/amazon-ec2.md>), [VPC](<https://devfeed.tech/topics/vpc.md>), [Amazon Elastic Kubernetes Service](<https://devfeed.tech/topics/amazon-elastic-kubernetes-service.md>), [Amazon RDS](<https://devfeed.tech/topics/amazon-rds.md>), [DevOps](<https://devfeed.tech/topics/devops.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [amazon-ec2](<https://devfeed.tech/tags/amazon-ec2.md>), [amazon-eks](<https://devfeed.tech/tags/amazon-eks.md>), [amazon-rds](<https://devfeed.tech/tags/amazon-rds.md>), [amazon-web-services](<https://devfeed.tech/tags/amazon-web-services.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [aws](<https://devfeed.tech/tags/aws.md>), [bastion](<https://devfeed.tech/tags/bastion.md>), [bastion-host](<https://devfeed.tech/tags/bastion-host.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [devops](<https://devfeed.tech/tags/devops.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [let](<https://devfeed.tech/tags/let.md>), [oidc](<https://devfeed.tech/tags/oidc.md>), [saml](<https://devfeed.tech/tags/saml.md>), [security](<https://devfeed.tech/tags/security.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [vpc](<https://devfeed.tech/tags/vpc.md>)

### AI overview

This tutorial explains how to use Teleport, an open-source identity-aware access proxy, as a bastion host for securing AWS infrastructure. It focuses on replacing a traditional bastion host with a Teleport proxy and authentication server for SSH access to EC2 instances, while also describing access to services such as RDS and EKS.

### Source excerpt

This post explains how to set-up AWS bastion host based on Teleport identity-aware access proxy.

## Using Rust Playground for Hello World and Variable Interpolation

DevFeed: [Using Rust Playground for Hello World and Variable Interpolation](<https://devfeed.tech/articles/using-rust-playground-for-hello-world-and-variable-interpolation-28320.md>)

Original publisher: [Read original article](<http://fuzzyblog.io/blog/rust/2020/03/02/using-rust-playground-for-hello-world-and-variable-interpolation.html>)

Author: Fuzzygroup

Published: 2020-03-02T00:00:00Z

Content type: tutorial

Language: en

Sources: [Scott Johnson](<https://devfeed.tech/sources/scott-johnson.md>)

Topics: [Rust](<https://devfeed.tech/topics/rust.md>), [Code](<https://devfeed.tech/topics/code.md>), [compiled language](<https://devfeed.tech/topics/compiled-language.md>), [Repl.it](<https://devfeed.tech/topics/replit.md>), [browser](<https://devfeed.tech/topics/browser.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [code](<https://devfeed.tech/tags/code.md>), [compiled-language](<https://devfeed.tech/tags/compiled-language.md>), [experiment](<https://devfeed.tech/tags/experiment.md>), [function](<https://devfeed.tech/tags/function.md>), [immutability](<https://devfeed.tech/tags/immutability.md>), [language](<https://devfeed.tech/tags/language.md>), [let](<https://devfeed.tech/tags/let.md>), [playground](<https://devfeed.tech/tags/playground.md>), [program](<https://devfeed.tech/tags/program.md>), [run](<https://devfeed.tech/tags/run.md>), [rust](<https://devfeed.tech/tags/rust.md>), [variables](<https://devfeed.tech/tags/variables.md>)

### AI overview

A beginner-oriented walkthrough of using Rust Playground to run a Hello World program and experiment with variables. It explains Rust syntax such as fn, println!, let, and string interpolation, and briefly compares Rust Playground with Repl.it, including a criticism of Repl.it's paid privacy option.

### Source excerpt

Artwork by my friend Autumn Mott; Hopefully I can find a better link to put here It is a Monday and what better way to start your 6 am Monday morning then learning some of the elements of a new language - Rust. I started by adding a link in my Browser toolbar to the Rust Playground which amounts to a web based REPL (Read Evaluate Print Loop) for Rust where you can type in Rust code and run it. Yes I know it really isn't a REPL because Rust is a compiled language not an interpreted one but it functions well enough as a REPL that I can wrap my Ruby tinged mind around it. Here's the Hello World program that automatically appears in the Rust playground fn main() { println!("Hello, world!"); } The output of this is: Hello, world! That's pretty easy to understand: A main function defined with fn A print line function defined with a ! (my previous Rust reading tells me that's a macro indicator) { and } to denote structure A ; to denote the end of lines I wanted to make a simple change to experiment with the use of variables so I added a main2() function and called it from main(): fn main() { println!("Hello, world!"); main2(); } fn main2() { let x = 5; println!("The value of x is: {}", x); let y = 6; println!("The value of y is: {}", y); } The output of this is: Hello, world! The value of x is: 5 The value of y is: 6 You can see that the let keyword assigns a variable and that {} binds a variable into a string (which is generally called interpolation). Note: Variables quickly bring you in to the heart of Rust - immutability - and here there by dragons that hopefully come up tomorrow after some reading. Link Here's a permanent link to this if you want to try it out. What about Repl.it? Another way to have a web based REPL for Rust is Repl.it. And while I like the concept of repl.it, they have eliminated any privacy without a paid account: Upgrade your account for private repls. This appears on the bottom of every new REPL you create and at $74 / 12 months that feels expensi

## Intentional Optionality

DevFeed: [Intentional Optionality](<https://devfeed.tech/articles/intentional-optionality-25807.md>)

Original publisher: [Read original article](<https://www.steveonstuff.com/2018/09/13/intentional-optionality>)

Author: Steve Barnegren

Published: 2018-09-13T00:00:00Z

Content type: tutorial

Language: en

Sources: [Steve Barnegren](<https://devfeed.tech/sources/steve-barnegren.md>)

Topics: [Swift](<https://devfeed.tech/topics/swift.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [guards](<https://devfeed.tech/tags/guards.md>), [let](<https://devfeed.tech/tags/let.md>), [optional](<https://devfeed.tech/tags/optional.md>), [swift](<https://devfeed.tech/tags/swift.md>)

### AI overview

A Swift article examines intentional use of optionality. It argues that while non-optional types are usually preferable, optional values can sometimes make code easier to read and understand, including when handling leaderboard entries and conditional menu items.

### Source excerpt

When I first started writing Swift, I felt like Optionals were a constant pain point. Everything seemed to end up being Optional, resulting in me littering if lets and guards around my code, and generally just making a horrible mess of things.

## apply() (scope function)

DevFeed: [apply() (scope function)](<https://devfeed.tech/articles/apply-scope-function-25008.md>)

Original publisher: [Read original article](<https://typealias.com/concepts/apply/>)

Author: author@typealias.com (Dave Leeds)

Published: 2017-09-04T20:06:46Z

Content type: tutorial

Language: en

Sources: [Dave Leeds on Kotlin - typealias.com](<https://devfeed.tech/sources/dave-leeds-on-kotlin-typealias-com.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Library](<https://devfeed.tech/topics/library.md>), [Code](<https://devfeed.tech/topics/code.md>), [Android](<https://devfeed.tech/topics/android.md>)

Tags: [also](<https://devfeed.tech/tags/also.md>), [apply](<https://devfeed.tech/tags/apply.md>), [code](<https://devfeed.tech/tags/code.md>), [extension-function](<https://devfeed.tech/tags/extension-function.md>), [function](<https://devfeed.tech/tags/function.md>), [guide](<https://devfeed.tech/tags/guide.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-standard-library](<https://devfeed.tech/tags/kotlin-standard-library.md>), [let](<https://devfeed.tech/tags/let.md>), [library](<https://devfeed.tech/tags/library.md>), [object](<https://devfeed.tech/tags/object.md>), [overview](<https://devfeed.tech/tags/overview.md>), [programming](<https://devfeed.tech/tags/programming.md>), [receiver](<https://devfeed.tech/tags/receiver.md>), [scope-function](<https://devfeed.tech/tags/scope-function.md>), [scope-functions](<https://devfeed.tech/tags/scope-functions.md>), [standard](<https://devfeed.tech/tags/standard.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [val](<https://devfeed.tech/tags/val.md>), [variable](<https://devfeed.tech/tags/variable.md>)

### AI overview

An overview of Kotlin's apply() scope function, including its receiver and return value, with examples of using it to initialize objects and configure Android code.

### Source excerpt

Overview The apply() function is a commonly-used scope function defined in the Kotlin standard library. It's frequently used for initializing an object after instantiation. Example val size = "Hello".apply { println(this) }.length In this example, the string "Hello" is printed, and then its length is assigned to the size variable. Characteristics When the apply() extension function executes: the receiver object that .apply() is called upon is available as this the result will be the receiver object Initializing an Object It's common to use apply() to initialize an object after it's been created.

## let() (scope function)

DevFeed: [let() (scope function)](<https://devfeed.tech/articles/let-scope-function-25019.md>)

Original publisher: [Read original article](<https://typealias.com/concepts/let/>)

Author: author@typealias.com (Dave Leeds)

Published: 2017-09-04T19:54:18Z

Content type: tutorial

Language: en

Sources: [Dave Leeds on Kotlin - typealias.com](<https://devfeed.tech/sources/dave-leeds-on-kotlin-typealias-com.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Library](<https://devfeed.tech/topics/library.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [extension-function](<https://devfeed.tech/tags/extension-function.md>), [function-reference](<https://devfeed.tech/tags/function-reference.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-standard-library](<https://devfeed.tech/tags/kotlin-standard-library.md>), [lambda](<https://devfeed.tech/tags/lambda.md>), [let](<https://devfeed.tech/tags/let.md>), [programming](<https://devfeed.tech/tags/programming.md>), [receiver](<https://devfeed.tech/tags/receiver.md>), [scope](<https://devfeed.tech/tags/scope.md>), [scope-function](<https://devfeed.tech/tags/scope-function.md>), [transformation](<https://devfeed.tech/tags/transformation.md>)

### AI overview

A reference guide to Kotlin's let() scope function. It explains how the receiver object is passed as the lambda argument, how let() returns the code block's result, and how it can transform objects. It also compares let() with direct property or function access, extension functions, and map().

### Source excerpt

Overview The let() function is one of a handful of scope functions defined in the Kotlin standard library. Example val size = "Hello".let { println(it) it.length } In this example, the string "Hello" is printed, and then its length is assigned to the size variable. Characteristics When the let() extension function executes: the receiver object that .let() is called upon is available as the lambda argument - by default, named it the result of let() will be the result of the code block passed to it Transformation The let() method is frequently used to transform an object.

## Scope Functions

DevFeed: [Scope Functions](<https://devfeed.tech/articles/scope-functions-25023.md>)

Original publisher: [Read original article](<https://typealias.com/concepts/scope-functions/>)

Author: author@typealias.com (Dave Leeds)

Published: 2017-09-04T02:33:15Z

Content type: article

Language: en

Sources: [Dave Leeds on Kotlin - typealias.com](<https://devfeed.tech/sources/dave-leeds-on-kotlin-typealias-com.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [also](<https://devfeed.tech/tags/also.md>), [apply](<https://devfeed.tech/tags/apply.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-standard-library](<https://devfeed.tech/tags/kotlin-standard-library.md>), [let](<https://devfeed.tech/tags/let.md>), [library](<https://devfeed.tech/tags/library.md>), [programming](<https://devfeed.tech/tags/programming.md>), [receiver](<https://devfeed.tech/tags/receiver.md>), [run](<https://devfeed.tech/tags/run.md>), [scope](<https://devfeed.tech/tags/scope.md>), [scope-functions](<https://devfeed.tech/tags/scope-functions.md>), [with](<https://devfeed.tech/tags/with.md>)

### AI overview

This article explains Kotlin scope functions: commonly used functions in the Kotlin standard library that place an object in a new scope, including also(), apply(), let(), run(), and with().

### Source excerpt

Scope functions consist of the often-used functions from Standard.kt in the Kotlin standard library that take an object and put it into a new scope, such as this or it. also() apply() let() run() (with receiver) with()

## Operator Underloading In Scala

DevFeed: [Operator Underloading In Scala](<https://devfeed.tech/articles/operator-underloading-in-scala-32197.md>)

Original publisher: [Read original article](<https://bruceeckel.com/2014/12/30/operator-underloading-in-scala/>)

Author: Bruce Eckel

Published: 2014-12-30T00:00:00Z

Content type: tutorial

Language: en

Sources: [Bruce Eckel - Computing Thoughts](<https://devfeed.tech/sources/bruce-eckel-computing-thoughts.md>)

Topics: [Scala](<https://devfeed.tech/topics/scala.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [immutability](<https://devfeed.tech/tags/immutability.md>), [let](<https://devfeed.tech/tags/let.md>), [map](<https://devfeed.tech/tags/map.md>), [programming](<https://devfeed.tech/tags/programming.md>), [scala](<https://devfeed.tech/tags/scala.md>), [var](<https://devfeed.tech/tags/var.md>), [vector](<https://devfeed.tech/tags/vector.md>)

### AI overview

The article examines Scala operator overloading and synthesized assignment operators such as += and -=. It explains how these operators interact with immutable Map values, var and val references, and Vector, arguing that the behavior can be useful but difficult to understand because it varies across classes and is not always documented clearly.

### Source excerpt

Here's a place where Scala does some clever stuff which ultimately might produce a more complicated programming model than one would like. I discovered it while sorting out some issues with the first exercise in the References & Mutability atom in Atomic Scala. I'll give you the examples directly out of the solution guide -- this includes the use of our tiny AtomicScala test framework, but if you don't want to include that you can just comment out the import and all the is statements and you'll still get the same results.